[HarmonyOS][K老师]子线程和主线程如何通讯?
原创
9747 浏览 251 点赞 0 收藏
核心通信方式
- Emitter 事件总线子线程订阅事件:emitter.on("event", callback)主线程触发事件:emitter.emit("event", data)适用场景:轻量级状态同步
- 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密集型任务(图像处理/大数据计算)
- EventHandler + EventRunner// 子线程 const runner = new EventRunner(); const handler = new EventHandler(runner); // 主线程投递任务 handler.postTask(() => { // 在子线程执行 }, Priority.HIGH);适用场景:异步任务调度
方案选型指南
| 场景 | 推荐方案 | 优势 |
|---|---|---|
| 简单状态通知 | Emitter | 零配置,实时性强 |
| 耗时计算 | Worker | 进程隔离,不阻塞UI |
| 线程任务调度 | EventHandler | 精准控制执行优先级 |
最佳实践:UI更新必须在主线程执行跨线程数据传递使用postMessage深拷贝高频通信优先选Emitter(性能开销最低)
©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS
标签
HarmonyOS
K老师
线程通讯
暂无评论数据
发布
相关推荐
微信鸿蒙版 App 扫码登录手表端要求公布,手机系统需升级至 HarmonyOS 6.0.0.130 及以上版本
1361
02026 HarmonyOS Connect伙伴峰会上海站圆满结束
1656
0鸿蒙生态如何吸引800万开发者共建?
2630
098寸国产化户外广告屏一体机鸿蒙HarmonyOS系统校园
阿杰的阳光笔记
2801
0K老师
大家好我是K老师,这是我的个人介绍:鸿蒙先锋,鸿蒙开发者达人,鸿蒙应用架构师,HDG组织者,可0-1开发纯血鸿蒙应用,可0-1开发前端加鸿蒙混合应用,可0-1开发PC端鸿蒙应用。
118
帖子
0
提问
1412
粉丝
最新发布
[HarmonyOS][K老师]鸿蒙中主线程与子线程通信机制详解,Emitter,Worker,EventHandler和EventRunner。
2026-01-28 11:31:47 发布[HarmonyOS][K老师]鸿蒙大文件上传方案。
2026-01-28 10:30:53 发布热门推荐