色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙APP開發:【ArkTS類庫多線程】TaskPool和Worker的對比

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-26 22:09 ? 次閱讀

TaskPool(任務池)和Worker的作用是為應用程序提供一個多線程的運行環境,用于處理耗時的計算任務或其他密集型任務??梢杂行У乇苊膺@些任務阻塞主線程,從而最大化系統的利用率,降低整體資源消耗,并提高系統的整體性能。

本文將從實現特點和適用場景兩個方面來進行TaskPool與Worker的比較,同時提供了各自運作機制和注意事項的相關說明。

一、實現特點對比

表1 TaskPool和Worker的實現特點對比

實現TaskPoolWorker
內存模型線程間隔離,內存不共享。線程間隔離,內存不共享。
參數傳遞機制采用標準的結構化克隆算法(Structured Clone)進行序列化、反序列化,完成參數傳遞。支持ArrayBuffer轉移和SharedArrayBuffer共享。采用標準的結構化克隆算法(Structured Clone)進行序列化、反序列化,完成參數傳遞。支持ArrayBuffer轉移和SharedArrayBuffer共享。
參數傳遞直接傳遞,無需封裝,默認進行transfer。消息對象唯一參數,需要自己封裝。
方法調用直接將方法傳入調用。在Worker線程中進行消息解析并調用對應方法。
返回值異步調用后默認返回。主動發送消息,需在onmessage解析賦值。
生命周期TaskPool自行管理生命周期,無需關心任務負載高低。開發者自行管理Worker的數量及生命周期。
任務池個數上限自動管理,無需配置。同個進程下,最多支持同時開啟8個Worker線程。
任務執行時長上限無限制。無限制。
設置任務的優先級不支持。不支持。
執行任務的取消支持取消任務隊列中等待的任務。不支持。
鴻蒙開發應用知識更新庫gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在這。或+mau123789學習,是v喔

搜狗高速瀏覽器截圖20240326151547.png

二、適用場景對比

TaskPool偏向獨立任務維度,該任務在線程中執行,無需關注線程的生命周期,超長任務(大于3分鐘)會被系統自動回收;而Worker偏向線程的維度,支持長時間占據線程執行,需要主動管理線程生命周期。

常見的一些開發場景及適用具體說明如下:

有關聯的一系列同步任務。例如在一些需要創建、使用句柄的場景中,句柄創建每次都是不同的,該句柄需永久保存,保證使用該句柄進行操作,需要使用Worker。

需要頻繁取消的任務。例如圖庫大圖瀏覽場景,為提升體驗,會同時緩存當前圖片左右側各2張圖片,往一側滑動跳到下一張圖片時,要取消另一側的一個緩存任務,需要使用TaskPool。

大量或者調度點較分散的任務。例如大型應用的多個模塊包含多個耗時任務,不方便使用8個Worker去做負載管理,推薦采用TaskPool。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Worker
    +關注

    關注

    0

    文章

    8

    瀏覽量

    6457
  • 鴻蒙
    +關注

    關注

    57

    文章

    2339

    瀏覽量

    42805
收藏 人收藏

    評論

    相關推薦

    鴻蒙開發:【線程模型】

    管理其他線程ArkTS引擎實例,例如使用TaskPool(任務池)創建任務或取消任務、啟動和終止Worker線程。
    的頭像 發表于 06-13 16:38 ?396次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>:【<b class='flag-5'>線程</b>模型】

    鴻蒙OS開發實例:【ArkTS多線程@Concurrent裝飾器校驗并發函數】

    在使用TaskPool時,執行的并發函數需要使用該裝飾器修飾,否則無法通過相關校驗。從API version 9開始,該裝飾器支持在ArkTS卡片中使用。
    的頭像 發表于 04-02 14:45 ?668次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發</b>實例:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b><b class='flag-5'>多線程</b>@Concurrent裝飾器校驗并發函數】

    鴻蒙OS開發實例:【ArkTS多線程CPU密集型任務TaskPool

    CPU密集型任務是指需要占用系統資源處理大量計算能力的任務,需要長時間運行,這段時間會阻塞線程其它事件的處理,不適宜放在主線程進行。例如圖像處理、視頻編碼、數據分析等。 基于多線程并發機制處理CPU密集型任務可以提高CPU
    的頭像 發表于 04-01 22:25 ?832次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發</b>實例:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b><b class='flag-5'>多線程</b>CPU密集型任務<b class='flag-5'>TaskPool</b>】

    鴻蒙OS開發案例:【ArkTS多線程CPU密集型任務Worker

    通過某地區提供的房價數據訓練一個簡易的房價預測模型,該模型支持通過輸入房屋面積和房間數量去預測該區域的房價,模型需要長時間運行,房價預測需要使用前面的模型運行結果,因此需要使用Worker。
    的頭像 發表于 04-01 21:55 ?1093次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發</b>案例:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b><b class='flag-5'>多線程</b>CPU密集型任務<b class='flag-5'>Worker</b>】

    鴻蒙原生應用開發-ArkTS語言基礎多線程并發概述

    的功能,它允許在不同的進程間傳遞對象的引用,使得不同進程之間可以共享對象的狀態和方法,服務提供者必須繼承此類。 二、TaskPoolWorker ArkTS提供了TaskPool
    發表于 03-28 14:35

    鴻蒙原生應用開發-ArkTS語言基礎多線程TaskPoolWorker對比(三)

    是不同的,因此TaskPool工作線程只能使用線程安全的,例如UI相關的非線程安全不能使用。
    發表于 03-27 16:26

    鴻蒙APP開發:【ArkTS多線程TaskPoolWorker對比(2)

    創建Worker線程稱為宿主線程(不一定是主線程,工作線程也支持創建Worker
    的頭像 發表于 03-27 15:44 ?526次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>APP</b><b class='flag-5'>開發</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b><b class='flag-5'>多線程</b>】<b class='flag-5'>TaskPool</b>和<b class='flag-5'>Worker</b>的<b class='flag-5'>對比</b>(2)

    鴻蒙原生應用開發-ArkTS語言基礎多線程TaskPoolWorker對比(二)

    TaskPool運作機制 圖1 TaskPool運作機制示意圖 TaskPool支持開發者在主線程封裝任務拋給任務隊列,系統選擇合適的工作
    發表于 03-26 15:25

    鴻蒙原生應用開發-ArkTS語言基礎多線程TaskPoolWorker對比(一)

    TaskPool(任務池)和Worker的作用是為應用程序提供一個多線程的運行環境,用于處理耗時的計算任務或其他密集型任務??梢杂行У乇苊膺@些任務阻塞主線程,從而最大化系統的利用率,降
    發表于 03-25 14:11

    鴻蒙原生應用開發-ArkTS語言基礎多線程并發概述

    的功能,它允許在不同的進程間傳遞對象的引用,使得不同進程之間可以共享對象的狀態和方法,服務提供者必須繼承此類。 二、TaskPoolWorker 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

    ArkTS語言基礎-解析

    ArkTS語言基礎是HarmonyOS系統上為應用開發者提供的常用基礎能力,主要包含能力如下圖所示。 圖1 ArkTS語言基礎
    發表于 02-20 16:44
    主站蜘蛛池模板: 国产揄拍国产精品| 一级片mp4| 任你躁精品一区二区三区| 久久香蕉国产线看观看精品| 国产三级精品三级在线观看| 国产国产人免费观看在线视频| 草莓视频免费在线观看| ae58老司机福利| eussse手机电影在线观看| 34g污奶绵uk甩奶| 中国老太婆xxxxx| 张津瑜的9分58秒7段免费 | 国产亚洲精品99一区二区| 国产精品俺来也在线观看| 国产成久久免费精品AV片天堂 | 猪蜜蜜网站在线观看电视剧| 在线 国产 欧美 专区| 伊人色综合久久大香| 樱桃熟了A级毛片| 在线观看免费av网站| 4388成人| hdsex老太婆70| 成人免费观看国产高清| 高跟丝袜岳第一次| 国产激情视频在线观看| 国产毛片女人18水多| 国语自产视频在线| 久久嫩草影院网站| 能看的黄页最新网站| 日本二区三区欧美亚洲国| 十九禁啊啪射视频在线观看 | 欧美亚洲精品午夜福利AV| 人妻体体内射精一区二区| 色宅男午夜电影网站| 午夜向日葵高清在线观看| 亚洲中文字幕永久在线| 777ZYZ玖玖资源站最稳定网址| 99午夜高清在线视频在观看| 俄罗斯少女人体| 国产在线观看免费观看| 麻豆成人久久精品二区三区网站 |