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

2023-11-29 06:44

本文主要是介绍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("我是收发室的儿子,我在饭堂,秘书妈妈已经收到秘书儿子的信息了。秘书妈妈叫校长别做梦了。");}}

这篇关于dart多线程双向通信的案例----【小学4年级课程】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/431843

相关文章

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

多线程解析报表

假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。 Way1 join import java.time.LocalTime;public class Main {public static void main(String[] args) thro

Java 多线程概述

多线程技术概述   1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间。线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换、并发执行,一个进程最少有一个线程,线程实际数是在进程基础之上的进一步划分,一个进程启动之后,进程之中的若干执行路径又可以划分成若干个线程 2.线程的调度 分时调度:所有线程轮流使用CPU的使用权,平均分配时间抢占式调度

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):