dart多线程双向通信的案例----【小学4年级课程】

在这里插入图片描述

下面是运行后的打印顺序

I/flutter (20170): 上班
I/flutter (20170): 这里是校长室:main
I/flutter (20170): 这里是饭堂:fantang1
I/flutter (20170): 这里是收发室--检查小孩发回去给他妈妈的信息是:我是秘书的儿子,我来到在校长室了。校长今晚想吃羊肉
I/flutter (20170): 收发室1--允许小孩告知其母亲
I/flutter (20170): 收发室2----
I/flutter (20170): 这里是饭堂,收到我小孩发送来以下消息内容:我是秘书的儿子,我来到在校长室了。校长今晚想吃羊肉
I/flutter (20170): 并且收发室的小孩也过来了,我会让收发室的小孩发送我的回复会去的。
I/flutter (20170): 收发室的小孩从饭堂带回来了什么信息?:我是收发室的儿子,我在饭堂,秘书妈妈已经收到秘书儿子的信息了。秘书妈妈叫校长别做梦了。
I/flutter (20170): 下班

main.dart文件中的代码

import 'dart:isolate';
Future shouFaShi(SendPort who_son,message){ReceivePort shoufashi_mon=ReceivePort();SendPort shoufashi_son_1=shoufashi_mon.sendPort;print('这里是收发室--检查小孩发回去给他妈妈的信息是:'+message.toString());print("收发室1--允许小孩告知其母亲");who_son.send([message,shoufashi_son_1]);print("收发室2----");return shoufashi_mon.first;
}main() {xiaozhangshi();}void xiaozhangshi() async {print('上班');print("这里是校长室:"+ Isolate.current.debugName.toString());ReceivePort xiaozhang_mon = ReceivePort();SendPort xiaozhang_son_1 = xiaozhang_mon.sendPort;Isolate.spawn(fantang1, xiaozhang_son_1);SendPort who_child = await xiaozhang_mon.first;var message =await shouFaShi(who_child, "我是秘书的儿子,我来到在校长室了。校长今晚想吃羊肉");print("收发室的小孩从饭堂带回来了什么信息?:$message");print('下班');
}void fantang1(SendPort xiaozhang_son_2) async {print("这里是饭堂:" + Isolate.current.debugName.toString());ReceivePort mishu_mon_1 = ReceivePort();SendPort mishu_son_2 = mishu_mon_1.sendPort;xiaozhang_son_2.send(mishu_son_2);await for (var msg in mishu_mon_1){var data =msg[0];print('这里是饭堂,收到我小孩发送来以下消息内容:$data');print('并且收发室的小孩也过来了,我会让收发室的小孩发送我的回复会去的。');SendPort which_son=msg[1];//第二个下标 指定下一个数据的发送人是谁,也就是校长组的发送人which_son.send("我是收发室的儿子,我在饭堂,秘书妈妈已经收到秘书儿子的信息了。秘书妈妈叫校长别做梦了。");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180331.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Web】SWPUCTF 2022 新生赛 个人复现

目录 ①webdog1__start ②ez_rce ③ez_sql ④ez_1zpop ⑤file_maste ⑥Power! 挑了部分题,太简单的就没选进来(但选进来≠有难度) ①webdog1__start 进来没啥东西,右键查看源码 对于0e215962017,md5后也是以…

Salesforce原生ERP产品 vs. 集成:如何选择?

Salesforce允许企业管理所有的客户交互。随着Salesforce平台的日渐成熟,企业已经能够获取成倍的收益。会计解决方案和其他ERP工具尤其契合,客户数据不会碰壁,可以在服务交付和客户成功、发票和账单、收入确认和续订的过程中继续前进。 一些…

群晖NAS配置之自有服务器ngrok实现内网穿透

群晖NAS配置之自有服务器ngrok实现内网穿透 前言-内网穿透 内网穿透是指通过一种技术让外部网络可以访问到内网的NAS设备,这样即使在不同网络环境下,也能够远程访问和管理NAS设备。以下是一些常见的内网穿透方案: Synology官方提供的Quick…

IDEA 配置 gradle6.8.3 解决导入gradle项目下载太慢问题

由于平时用的是springboot 2.7 这里下载gradle-6.8.3 Gradle官网地址:https://services.gradle.org/distributions/ 1.下载gradle后,配置环境变量 GRADLE_HOME {gradle 文件路径} GRADLE_USER_HOME {jar下载路径,可以放maven jar保存路径…

链接2:静态链接、目标文件、符号和符号表

文章目录 静态链接符号解析 (symbolresolution)重定位 (relocation) 目标文件1.可重定位目标文件2.可执行目标文件3.共享目标文件 可重定位目标文件text:rodata:.data.bss.symtab.rel.text.rel.data:debug:line:strtab: 符号和符号表由m定义并能被其他模块引用的全局符号由其他…

基于Pix2Struct的文档信息提取【DocVQA】

文档信息提取涉及使用计算机算法从非结构化或半结构化文档(例如报告、电子邮件和网页)中提取结构化数据(例如员工姓名、地址、职务、电话号码等)。 提取的信息可用于各种目的,例如分析和分类。 DocVQA(文档…

MySQL基础进阶篇

进阶篇 存储引擎 MySQL体系结构: 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的,所以存储引擎也可以被称为表引擎。 默认存储引擎是InnoDB。 相关操作: -- 查询建表语句 show create …

BGP综合实验(IP)

实验要求: 实验思路: 1.划分IP地址: 将172.16.0.0/16的网段划分为172.16.0.0/24的多个网段,因为在实际工程当中,24的网段更符合用户网段,因此先将网段划分为172.16.0.0 /24的多个子网掩码为24的网段&…

filebeat(远程收集日志工具)

(一)filebeat 1、filebeat和logstash相同 (1)filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多 (2)filebeat可以运行在非Java环境、可以代理l…

C语言——计算Fibonacci数列

方式一 for循环 (20位) #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int n;int a[20]{1,1};for ( n 1; n <20; n){a[n]a[n-2]a[n-1];}for ( n 0; n < 20; n){if(n%50)printf("\n");printf("%12d ",a[n]);}return 0; …

【小黑嵌入式系统第十课】μC/OS-III概况——实时操作系统的特点、基本概念(内核任务中断)、与硬件的关系实现

文章目录 一、为什么要学习μC/OS-III二、嵌入式操作系统的发展历史三、实时操作系统的特点四、基本概念1. 前后台系统2. 操作系统3. 实时操作系统&#xff08;RTOS&#xff09;4. 内核5. 任务6. 任务优先级7. 任务切换8. 调度9. 非抢占式&#xff08;合作式&#xff09;内核10…

轻量级web开发框架:Flask本地部署及实现公网访问界面

轻量级web开发框架&#xff1a;Flask本地部署及实现公网访问界面 文章目录 轻量级web开发框架&#xff1a;Flask本地部署及实现公网访问界面前言1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 前言 本篇文章讲解如何…

CI/CD 构建中能保护好 SSHKEY吗?

目录 背景 方案 编码存储 逐行存储 合并存储 打马赛克 结论 背景 使用极狐GitLab CI/CD&#xff0c;在部署方面&#xff0c;主要有两种方式&#xff1a; 部署到K8S集群 Push模式&#xff1a;流水线通过kubectl执行命令部署&#xff0c;这需要把K8S的权限给流水线&#xf…

GoWeb学习-第二天

文章目录 从零开始学Go web——第二天一、安装Go语言二、建立web目录2.1 创建GO语言包目录2.2 创建Go web文件 三、编译并运行Go web应用3.1 编译并运行3.2 查看结果 从零开始学Go web——第二天 ​ 第一天我们了解了与web息息相关的HTTP协议&#xff0c;聊了聊Go与web的关系等…

LeetCode Hot100 42.接雨水

题目&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 方法一&#xff08;相向双指针&#xff09;&#xff1a;竖着计算面积 代码&#xff1a; class Solution {public int trap(int[] he…

无分类编址 CIDR

在域名系统出现之后的第一个十年里&#xff0c;基于分类网络进行地址分配和路由IP数据包的设计就已明显显得可扩充性不足&#xff08;参见RFC 1517&#xff09;。为了解决这个问题&#xff0c;互联网工程工作小组在1993年发布了一新系列的标准——RFC 1518和RFC 1519——以定义…

初识数据结构及复杂度

1、数据结构 数据结构数据结构&#xff08;描述和组织数据&#xff09;&#xff0c;Java会把一些数据结构封装起来&#xff0c;在java中数据结构叫做集合。 数据结构&#xff1a;&#xff08;data structer&#xff09;是计算机存储、组织数据的方式&#xff0c;指相互之间存在…

mac电脑下载Netflix Mac(奈飞客户端)安装教程

Netflix Mac&#xff0c;奈飞官方客户端&#xff0c;带给您无限的电影和剧集体验&#xff01;与朋友分享最新热门剧集、电影&#xff0c;与家人一起享受高品质的流媒体内容。 通过Netflix Mac&#xff0c;您可以轻松地搜索、浏览和观看各种类型的影片&#xff0c;包括剧情片、…

【鸿蒙应用ArkTS开发系列】- 选择图片、文件和拍照功能实现

文章目录 前言创建多媒体Demo工程创建MediaBean 实体类创建MediaHelper工具类API标记弃用问题动态申请多媒体访问权限实现选择图片显示功能打包测试 前言 在使用App的时候&#xff0c;我们经常会在一些社交软件中聊天时发一些图片或者文件之类的多媒体文件&#xff0c;那在鸿蒙…

GitHub 2023排名前十的最佳开源项目

开源软件&#xff08;OSS&#xff09;彻底改变了当今软件开发的方式。在数百万个开源GitHub项目中&#xff0c;要找到最适合需求的开源项目可能会让人不知所措。 今天给大家列出2023年增长最快的前10个开源GitHub仓库。通过这些增长最快的开源项目&#xff0c;也可以从整体上了…