線程模型
線程類型
Stage模型下的線程主要有如下三類:
- 主線程
- 執(zhí)行UI繪制。
- 管理主線程的ArkTS引擎實(shí)例,使多個(gè)UIAbility組件能夠運(yùn)行在其之上。
- 管理其他線程的ArkTS引擎實(shí)例,例如使用TaskPool(任務(wù)池)創(chuàng)建任務(wù)或取消任務(wù)、啟動和終止Worker線程。
- 分發(fā)交互事件。
- 處理應(yīng)用代碼的回調(diào),包括事件處理和生命周期管理。
- 接收TaskPool以及Worker線程發(fā)送的消息。
- [TaskPool Worker線程]
- 用于執(zhí)行耗時(shí)操作,支持設(shè)置調(diào)度優(yōu)先級、負(fù)載均衡等功能,推薦使用。
- [Worker線程]
- 用于執(zhí)行耗時(shí)操作,支持線程間通信。 TaskPool與Worker的運(yùn)作機(jī)制、通信手段和使用方法可以參考[TaskPool和Worker的對比]。
- 用于執(zhí)行耗時(shí)操作,支持線程間通信。 TaskPool與Worker的運(yùn)作機(jī)制、通信手段和使用方法可以參考[TaskPool和Worker的對比]。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
- TaskPool自行管理線程數(shù)量,其生命周期由TaskPool統(tǒng)一管理。Worker線程最多創(chuàng)建8個(gè),其生命周期由開發(fā)者自行維護(hù)。
- 同一線程中存在多個(gè)組件,例如UIAbility組件和UI組件都存在于主線程中。在Stage模型中目前主要使用[EventHub]進(jìn)行數(shù)據(jù)通信。
- 執(zhí)行
hdc shell
命令,進(jìn)入設(shè)備的shell命令行。在shell命令行中,執(zhí)行ps -p
命令,可以查看指定應(yīng)用進(jìn)程的線程信息。其中,-T 為需要指定的應(yīng)用進(jìn)程的[進(jìn)程ID]。
使用EventHub進(jìn)行線程內(nèi)通信
[EventHub]提供了線程內(nèi)發(fā)送和處理事件的能力,包括對事件訂閱、取消訂閱、觸發(fā)事件等。以UIAbility組件與UI之間的數(shù)據(jù)同步為例,具體使用方法可以參考[UIAbility組件與UI的數(shù)據(jù)同步]。
審核編輯 黃宇
-
線程
+關(guān)注
關(guān)注
0文章
507瀏覽量
20029 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2469瀏覽量
43655
發(fā)布評論請先 登錄
相關(guān)推薦
鴻蒙內(nèi)核源碼Task/線程技術(shù)分析

鴻蒙OS 線程管理開發(fā)指導(dǎo)
鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)類庫多線程并發(fā)概述
鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)類庫多線程TaskPool和Worker的對比(三)
鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)類庫多線程并發(fā)概述
DevEco Studio AI輔助開發(fā)工具兩大升級功能 鴻蒙應(yīng)用開發(fā)效率再提升
BearPi-HM_Nano開發(fā)板鴻蒙OS內(nèi)核編程開發(fā)——Thread多線程
多線程服務(wù)器編程模型:如何正確使用mutex 和condition variable

鴻蒙系統(tǒng)是基于什么開發(fā)的
Linux應(yīng)用開發(fā)【第五章】線程編程應(yīng)用開發(fā)

SCP線程模型特點(diǎn)

使用 Taro 開發(fā)鴻蒙原生應(yīng)用 —— 快速上手,鴻蒙應(yīng)用開發(fā)指南

評論