askPool運作機制
圖1 TaskPool運作機制示意圖
TaskPool支持開發者在主線程封裝任務拋給任務隊列,系統選擇合適的工作線程,進行任務的分發及執行,再將結果返回給主線程。接口直觀易用,支持任務的執行、取消。工作線程數量上限為4。
鴻蒙OS開發 | 更多內容↓點擊 | HarmonyOS與OpenHarmony技術 |
---|---|---|
鴻蒙技術文檔 | 開發知識更新庫gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md 在這。 | 或+mau123789學習,是v喔 |
Worker運作機制
圖2 Worker運作機制示意圖
創建Worker的線程稱為宿主線程(不一定是主線程,工作線程也支持創建Worker子線程),Worker自身的線程稱為Worker子線程(或Actor線程、工作線程)。每個Worker子線程與宿主線程擁有獨立的實例,包含基礎設施、對象、代碼段等。Worker子線程和宿主線程之間的通信是基于消息傳遞的,Worker通過序列化機制與宿主線程之間相互通信,完成命令及數據交互。
本文參考引用HarmonyOS官方開發文檔,基于API9。
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Worker
+關注
關注
0文章
8瀏覽量
6457 -
鴻蒙
+關注
關注
57文章
2339瀏覽量
42805
發布評論請先 登錄
相關推薦
鴻蒙OS開發實例:【ArkTS類庫多線程@Concurrent裝飾器校驗并發函數】
在使用TaskPool時,執行的并發函數需要使用該裝飾器修飾,否則無法通過相關校驗。從API version 9開始,該裝飾器支持在ArkTS卡片中使用。
鴻蒙OS開發實例:【ArkTS類庫多線程CPU密集型任務TaskPool】
CPU密集型任務是指需要占用系統資源處理大量計算能力的任務,需要長時間運行,這段時間會阻塞線程其它事件的處理,不適宜放在主線程進行。例如圖像處理、視頻編碼、數據分析等。
基于多線程并發機制處理CPU密集型任務可以提高CPU
鴻蒙OS開發案例:【ArkTS類庫多線程CPU密集型任務Worker】
通過某地區提供的房價數據訓練一個簡易的房價預測模型,該模型支持通過輸入房屋面積和房間數量去預測該區域的房價,模型需要長時間運行,房價預測需要使用前面的模型運行結果,因此需要使用Worker。
鴻蒙原生應用開發-ArkTS語言基礎類庫多線程并發概述
的功能,它允許在不同的進程間傳遞對象的引用,使得不同進程之間可以共享對象的狀態和方法,服務提供者必須繼承此類。
二、TaskPool和Worker
ArkTS提供了TaskPool和
發表于 03-28 14:35
鴻蒙原生應用開發-ArkTS語言基礎類庫多線程TaskPool和Worker的對比(三)
是不同的,因此TaskPool工作線程只能使用線程安全的庫,例如UI相關的非線程安全庫不能使用。
發表于 03-27 16:26
鴻蒙APP開發:【ArkTS類庫多線程】TaskPool和Worker的對比
TaskPool(任務池)和Worker的作用是為應用程序提供一個多線程的運行環境,用于處理耗時的計算任務或其他密集型任務??梢杂行У乇苊膺@些任務阻塞主線程,從而最大化系統的利用率,降
鴻蒙原生應用開發-ArkTS語言基礎類庫多線程TaskPool和Worker的對比(二)
TaskPool運作機制
圖1 TaskPool運作機制示意圖
TaskPool支持開發者在主線程封裝任務拋給任務隊列,系統選擇合適的工作
發表于 03-26 15:25
鴻蒙原生應用開發-ArkTS語言基礎類庫多線程TaskPool和Worker的對比(一)
TaskPool(任務池)和Worker的作用是為應用程序提供一個多線程的運行環境,用于處理耗時的計算任務或其他密集型任務??梢杂行У乇苊膺@些任務阻塞主線程,從而最大化系統的利用率,降
發表于 03-25 14:11
鴻蒙原生應用開發-ArkTS語言基礎類庫多線程并發概述
的功能,它允許在不同的進程間傳遞對象的引用,使得不同進程之間可以共享對象的狀態和方法,服務提供者必須繼承此類。
二、TaskPool和Worker
ArkTS提供了TaskPool和
發表于 03-22 15:40
鴻蒙原生應用開發-ArkTS語言基礎類庫多線程I/O密集型任務開發
filePath2 = ...;
// 使用TaskPool執行包含密集I/O的并發函數
// 數組較大時,I/O密集型任務任務分發也會搶占主線程,需要使用多線程能力
發表于 03-21 14:57
鴻蒙原生應用開發-ArkTS語言基礎類庫多線程CPU密集型任務TaskPool
CPU密集型任務是指需要占用系統資源處理大量計算能力的任務,需要長時間運行,這段時間會阻塞線程其它事件的處理,不適宜放在主線程進行。例如圖像處理、視頻編碼、數據分析等。
基于多線程并發機制處理CPU
發表于 03-19 14:14
鴻蒙原生應用開發-ArkTS語言基礎類庫多線程@Concurrent裝飾器校驗并發函數
在使用TaskPool時,執行的并發函數需要使用該裝飾器修飾,否則無法通過相關校驗。從API version 9開始,該裝飾器支持在ArkTS卡片中使用。
裝飾器說明
裝飾器使用示例
import
發表于 03-18 10:30
鴻蒙原生應用開發-ArkTS語言基礎類庫概述
ArkTS語言基礎類庫是HarmonyOS系統上為應用開發者提供的常用基礎能力,主要包含能力如下圖所示。
1.提供異步并發和多線程并發的能
發表于 03-05 15:42
評論