国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    瀏覽量

    6703
  • 鴻蒙
    +關注

    關注

    60

    文章

    2963

    瀏覽量

    45883
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    多線程的系統

    多線程系統的事件響應也是在中斷中完成的,但事件的處理是在線程中完成的。在多線程系統中,線程跟中斷一樣,也具有優先級,優先級高的線程會被優先執
    發表于 12-08 07:55

    Linux多線程對比線程的優勢

    :「資源利用率」:通過多線程,可以更有效地利用CPU資源,特別是多核CPU。「并行處理」:線程允許同時執行多個任務,提高程序的執行效率。「簡化設計」:使用線程可以簡化程序設計,因為線程
    發表于 12-01 06:11

    多線程的安全注意事項

    多線程安全是指多個線程同時訪問或修改共享資源時,能夠保證程序的正確性和可靠性。 開發者選擇TaskPoolWorker進行
    發表于 06-20 07:49

    同步任務開發指導

    ,例如無法單例創建的對象實現的方法。 使用TaskPool處理同步任務 當調度獨立的任務,或者一系列任務為靜態方法實現,或者可以通過單例構造唯一的句柄或對象,可在不同任務線程之間
    發表于 06-19 07:57

    CPU密集型任務開發指導

    密集型任務可以提高CPU利用率,提升應用程序響應速度。 當任務不需要長時間(3分鐘)占據后臺線程,而是一個個獨立的任務時,推薦使用TaskPool,反之推薦使用Worker。接下來將以圖像直方圖處理
    發表于 06-19 06:05

    TaskPoolWorker對比分析

    支持。不支持。適用場景對比 TaskPoolWorker均支持多線程并發能力。由于TaskPool的工作
    發表于 06-18 06:43

    什么是ArkTS

    、提高系統的整體性能,開發者無需關心線程實例的生命周期。 Worker支持多線程并發,支持Worker
    發表于 06-17 06:24

    鴻蒙5開發寶藏案例分享---優化應用時延問題

    鴻蒙性能優化寶藏指南:6大實戰案例讓你的應用飛起來! 大家好!今天在翻鴻蒙文檔時挖到了 性能優化寶藏 !官方竟然悄悄藏了這么多實戰案例,從UI渲染到數據操作應有盡有。這些案例要是早
    發表于 06-13 10:08

    鴻蒙5開發寶藏案例分享---跨線程性能優化指南

    ;>Worker</span>做多線程開發時,總遇到對象跨線程卡頓的問題,原來鴻蒙早就提供了解決方案。下面結合代碼和實戰案
    發表于 06-12 17:13

    鴻蒙5開發寶藏案例分享---性能體驗設計

    例子: // 錯誤示范:直接在主線程加載大圖 Image($r(\'app.media.large_img\')) // 可能造成界面凍結 // 正確做法:異步加載+占位符 Column
    發表于 06-12 16:45

    鴻蒙5開發寶藏案例分享---應用并發設計

    ?** 鴻蒙并發編程實戰指南:解鎖ArkTS多線程黑科技** 嘿,開發者朋友們! 今天給大家扒一扒鴻蒙官方文檔里藏著的并發編程寶藏—— 10
    發表于 06-12 16:19

    使用DevEcoStudio 開發、編譯鴻蒙 NEXT_APP 以及使用中文插件

    # 使用DevEcoStudio 開發、編譯鴻蒙 NEXT_APP 以及使用中文插件 #鴻蒙開發工具 #DevEco Studio ##
    發表于 06-11 17:18

    開源啦!!!基于鴻蒙ArkTS封裝的圖表組件《McCharts》,大家快來一起共創

    也用鴻蒙ArkTS語法嘗試開發了一些APP,雖然還沒上架哈,不過基本的開發流程以及交互都熟悉了,而且馬上第一款
    發表于 03-15 15:21

    HarmonyOS NEXT 原生應用/元服務-ArkTS代碼調試worker/taskpool調試

    開發者可通過在workertaskpool代碼上設置斷點,對worker/taskpool進行斷點調試。 一、
    發表于 03-13 17:46

    鴻蒙文件傳輸三方上線開源鴻蒙社區 十行代碼實現大文件高速傳輸

    近日,華為在OpenHarmony社區上線了“super_fast_file_trans”文件傳輸三方(以下簡稱“SFFT”)。這一三方的推出,為開發者提供了一套支持大文件多線程
    發表于 03-06 10:29