[HarmonyOS][K老师]子线程和主线程如何通讯? 原创
头像 K老师 2026-01-08 12:26:13    发布
9747 浏览 251 点赞 0 收藏

核心通信方式

  1. Emitter 事件总线子线程订阅事件:emitter.on("event", callback)主线程触发事件:emitter.emit("event", data)适用场景:轻量级状态同步
  2. Worker 线程// 主线程 const worker = new Worker("workers/MyWorker.ts"); worker.postMessage({cmd: "process", data}); worker.onmessage = (e) => { /* 更新UI */ }; // Worker线程 onmessage = (e) => { const result = heavyTask(e.data); postMessage(result); };适用场景:CPU密集型任务(图像处理/大数据计算)
  3. EventHandler + EventRunner// 子线程 const runner = new EventRunner(); const handler = new EventHandler(runner); // 主线程投递任务 handler.postTask(() => { // 在子线程执行 }, Priority.HIGH);适用场景:异步任务调度

方案选型指南

场景推荐方案优势
简单状态通知Emitter零配置,实时性强
耗时计算Worker进程隔离,不阻塞UI
线程任务调度EventHandler精准控制执行优先级
最佳实践:UI更新必须在主线程执行跨线程数据传递使用postMessage深拷贝高频通信优先选Emitter(性能开销最低)


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS

暂无评论数据

发布

头像

K老师

大家好我是K老师,这是我的个人介绍:鸿蒙先锋,鸿蒙开发者达人,鸿蒙应用架构师,HDG组织者,可0-1开发纯血鸿蒙应用,可0-1开发前端加鸿蒙混合应用,可0-1开发PC端鸿蒙应用。

118

帖子

0

提问

1412

粉丝

关注
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255