鸿蒙开发:【线程模型】

线程模型

线程类型

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的数据同步\]。

相关推荐
Math_teacher_fan8 小时前
Flutter 跨平台开发实战:鸿蒙与音乐律动艺术(六)、Lissajous 利萨茹曲线:频率耦合的轨迹艺术
flutter·ui·数学建模·华为·harmonyos·鸿蒙系统
xmdy58669 小时前
Flutter+开源鸿蒙实战|智安盾电商溯源平台Day3 溯源查询逻辑+鸿蒙网络请求适配
flutter·开源·harmonyos
maaath10 小时前
【maaath】Flutter 跨平台日历日程应用开发实战
flutter·华为·harmonyos
LeesonWong11 小时前
架构困境与四层结构化设计
harmonyos
梦想不只是梦与想12 小时前
鸿蒙 应用市场更新功能:版本检测与更新提醒
harmonyos·鸿蒙·版本更新
xmdy586612 小时前
Flutter+开源鸿蒙实战|智安盾电商溯源平台Day2 首页+核心入口UI开发(鸿蒙多端适配)
flutter·开源·harmonyos
nashane16 小时前
HarmonyOS 6学习:HAR包与HSP包的选择与优化指南
学习·华为·harmonyos·harmonyos 5
全栈若城16 小时前
自定义 TabBar 实战:浮动标签栏与舵式标签栏
harmonyos·harmonyos6·三方库开发
maaath16 小时前
【maaath】Flutter for OpenHarmony 学习答题应用实战开发
学习·flutter·华为·harmonyos
李游Leo16 小时前
别再拼 JSON 了:HarmonyOS UDMF 跨应用数据流转实践
harmonyos