鸿蒙开发:【线程模型】

线程模型

线程类型

Stage模型下的线程主要有如下三类:

  • 主线程

    • 执行UI绘制。
    • 管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上。
    • 管理其他线程的ArkTS引擎实例,例如使用TaskPool(任务池)创建任务或取消任务、启动和终止Worker线程。
    • 分发交互事件。
    • 处理应用代码的回调,包括事件处理和生命周期管理。
    • 接收TaskPool以及Worker线程发送的消息。
  • [TaskPool Worker线程]

    • 用于执行耗时操作,支持设置调度优先级、负载均衡等功能,推荐使用。
  • [Worker线程]

    • 用于执行耗时操作,支持线程间通信。 TaskPool与Worker的运作机制、通信手段和使用方法可以参考[TaskPool和Worker的对比]。

说明:

  • TaskPool自行管理线程数量,其生命周期由TaskPool统一管理。Worker线程最多创建8个,其生命周期由开发者自行维护。
  • 同一线程中存在多个组件,例如UIAbility组件和UI组件都存在于主线程中。在Stage模型中目前主要使用[EventHub]进行数据通信。
  • 执行hdc shell命令,进入设备的shell命令行。在shell命令行中,执行ps -p <pid> -T命令,可以查看指定应用进程的线程信息。其中,<pid>为需要指定的应用进程的[进程ID]。

使用EventHub进行线程内通信

[EventHub]提供了线程内发送和处理事件的能力,包括对事件订阅、取消订阅、触发事件等。以UIAbility组件与UI之间的数据同步为例,具体使用方法可以参考[UIAbility组件与UI的数据同步]。

相关推荐
SoraLuna6 分钟前
「Mac畅玩鸿蒙与硬件50」UI互动应用篇27 - 水果掉落小游戏
macos·ui·harmonyos
三掌柜6661 小时前
HarmonyOS开发:关于帧动画使用分享
华为·harmonyos
轻口味1 小时前
【每日学点鸿蒙知识】组件对象做参数、2D在子线程中使用、Tabs组件联动、Web组件获取焦点、Text加载藏文
前端·华为·harmonyos
程序员一鸣2 小时前
鸿蒙开发:了解正则表达式
鸿蒙开发·鸿蒙正则表达式
轻口味3 小时前
【每日学点鸿蒙知识】上拉加载下拉刷新、napi调试报错、安装验证包、子线程播放音视频文件、OCR等
ocr·音视频·harmonyos
轻口味6 小时前
【每日学点鸿蒙知识】输入法按压效果、web组件回弹、H5回退问题、Flex限制两行、密码输入自定义样式
前端·华为·harmonyos
杨景文Blog11 小时前
HarmonyOS NEXT版本Stage应用开发模型介绍(附视频讲解)
华为·harmonyos
SuperHeroWu711 小时前
【HarmonyOS】解决自定义弹框和键盘之间安全距离的问题
harmonyos·键盘·自定义弹框·空隙·安全距离·键盘贴弹框
兰琛11 小时前
鸿蒙1.2:第一个应用
android·华为·harmonyos
轻口味12 小时前
【每日学点鸿蒙知识】placement设置top、组件携带自定义参数、主动隐藏输入框、Web设置字体、对话框设置全屏宽
前端·华为·harmonyos