鸿蒙线程通信

HarmoneyOS应用中每个进程都会有一个主线程,主线程有如下职责:
1.执行UI绘制
2.管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上
3.管理其他线程(例如Worker线程)的ArkTS引擎实例,例如启动和终止其他线程
4.分发交互事件
5.处理应用代码的回调,包括事件处理和生命周期管理
6.接收worker线程发送的消息
work类似iOS的async_disPatch,处理耗时任务的字线程

基于HarmonyOS的线程模型,不同的业务功能运行在不同的线程上,业务功能的交互就需要线程间通信。线程间通信目前主要有Emitter和Worker两种方式,其中Emitter主要适用于线程间的事件同步,worker主要用于新开一个线程执行耗时任务。
stage模型只提供了主线程和Work线程,Emitter主要用于主线程内或者主线程和Worker线程的事件同步

使用Emitter进行线程间通信

1先触发事件,eventId是用来区分触发的是哪一个回调函数callback
请添加图片描述
2.进行订阅
请添加图片描述

使用Worker进行线程间通信

worker是与主现场并行的独立线程,创建worker的线程被称为宿主线程,worker工作的线程被称为worker线程,通常在worker线程中处理耗时的操作,需要注意的是:worker中不能直接更新page,最多可以开启8个worker线程
开发步骤如下:
1.在工程的模块及build-profile.json5文件的buildOption属性中添加配置信息。
请添加图片描述
2.创建对应的worker.ts文件请添加图片描述

监听work发送的消息,进行处理

请添加图片描述

请添加图片描述

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值