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.hqwc.cn/news/228126.html

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

相关文章

【SpringCloud系列】@FeignClient微服务轻舞者

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

NX二次开发UF_MTX3_vec_multiply_t 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX3_vec_multiply_t Defined in: uf_mtx.h void UF_MTX3_vec_multiply_t(const double vec [ 3 ] , const double mtx [ 9 ] , double vec_product [ 3 ] ) overview 概述 Ret…

windows10 Arcgis pro3.0-3.1

我先安装的arcgis pro3.0,然后下载的3.1。 3.0里面有pro、help、sdk、还有一些补丁包根据个人情况安装。 3.1里面也是这些。 下载 正版试用最新的 ArcGIS Pro 21 天教程,仅需五步!-地理信息云 (giscloud.com.cn) 1、安装windowsdesktop-…

使用docker-compose优雅部署rocketMQ

使用docker-compose优雅部署RocketMQ 随着市场的发展,越来越多的复杂场景出现在我们日常的开发工作中。随之也越来越多的好的工具,也同步出现在程序员的学习范围清单内。好的工具提高产品性能的同时,也带来了很多安装上的问题,do…

申请免费的ssl证书

申请网站: https://freessl.cn/ 解密域名,添加cname跳转 下载acme.sh 工具脚本,地址:https://github.com/acmesh-official/acme.sh/wiki/Install-in-China 下载成功之后的acme.sh是一个目录,进去之后才是脚本 执行…

深入浅出 Vue 中的插槽 slot

深入浅出 Vue 中的插槽 slot start 最近被问到好几次 Vue 中的插槽相关知识,掌握的还是有些不全面。抱着重新学习的心态,写这篇博客。首先对基础知识做一个回顾,然后再对源码实现做一个学习。作者:番茄编写时间:2023…

ArkTS-WebView内嵌H5页面

鸿蒙开发使用WebView内嵌H5页面 访问在线网页时需添加网络权限:ohos.permission.INTERNET module.json5文件配置 {"module" : {"requestPermissions":[{"name": "ohos.permission.INTERNET"}]} }踩坑日记 加载网页效果无法…

Java---权限修饰符、final、static

文章目录 1. 权限修饰符2. final(最终态)3. static(静态) 1. 权限修饰符 修饰符同一个类中同一个包中的子类和无关类不同包的子类不同包的无关类private√默认√√protected√√√public√√√√ 2. final(最终态) 1. final关键字是最终的意思,可以修饰成员方法、…

《数据结构与测绘程序设计》试题详细解析(仅供参考)

一. 选择题(每空2分,本题共30分) (1)在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入结点s,则执行( B )。 A. s->nextp->next; p->nexts; …

第3章 表、栈和队列

前言 本章讨论最简单和最基本的三种数据结构。实际上,每一个有意义的程序都将至少明确使用一种这样的数据结构,而栈则在程序中总是隐含使用,不管你在程序中是否做了声明。 在这一章,我们将: 介绍抽象数据类型…

Asp.net core WebApi 配置自定义swaggerUI和中文注释

1.创建asp.net core webApi项目 默认会引入swagger的Nuget包 <PackageReference Include"Swashbuckle.AspNetCore" Version"6.2.3" />2.配置基本信息和中文注释&#xff08;默认是没有中文注释的&#xff09; 2.1创建一个新的controller using Micr…

Apipost也出IDEA插件了?Apipost-Helper!

IDEA是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作&#xff0c;一般需要打开额外的调试工具。 今天给大家介绍一款IDEA插件&#xff1a;Api…