女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    瀏覽量

    6555
  • 鴻蒙
    +關注

    關注

    59

    文章

    2503

    瀏覽量

    43765
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    開源啦!?。』?b class='flag-5'>鴻蒙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

    基于OpenHarmony標準系統的C++公共基礎案例:ThreadPoll

    。每個線程每秒打印1段字符串,10秒后停止。2、基礎知識C++公共基礎為標準系統提供了一些常用的C++開發工具,包括:文件、路徑、字符
    的頭像 發表于 02-10 18:09 ?281次閱讀
    基于OpenHarmony標準系統的C++公共基礎<b class='flag-5'>類</b><b class='flag-5'>庫</b>案例:ThreadPoll

    鴻蒙Flutter實戰:14-現有Flutter 項目支持鴻蒙 II

    文件 .fvm/, vscode/settings.json 文件 ohos_app/pubsec.yaml 中的 dependency_overrides, 僅添加需要鴻蒙化的三方
    發表于 12-26 14:59

    socket 多線程編程實現方法

    在現代網絡編程中,多線程技術被廣泛應用于提高服務器的并發處理能力。Socket編程是網絡通信的基礎,而將多線程技術應用于Socket編程,可以顯著提升服務器的性能。 多線程編程的基本概念 多線
    的頭像 發表于 11-12 14:16 ?880次閱讀

    Python中多線程和多進程的區別

    Python作為一種高級編程語言,提供了多種并發編程的方式,其中多線程與多進程是最常見的兩種方式之一。在本文中,我們將探討Python中多線程與多進程的概念、區別以及如何使用線程池與進程池來提高并發執行效率。
    的頭像 發表于 10-23 11:48 ?905次閱讀
    Python中<b class='flag-5'>多線程</b>和多進程的區別

    鴻蒙Flutter實戰:06-使用ArkTs開發Flutter鴻蒙插件

    # 使用 ArkTs 開發 Flutter 鴻蒙平臺插件 本文講述如何開發一個 Flutter 鴻蒙插件,如何實現 Flutter 與
    發表于 10-22 21:56

    鴻蒙Flutter實戰:05-使用第三方插件

    原插件的特定平臺實現。 參考資料 如何使用PlatformView 使用 ArkTs 開發 Flutter 鴻蒙平臺插件
    發表于 10-22 21:54

    鴻蒙原生應用元服務開發-倉頡ArkTS相互操作(二)

    = data.getId() console.log(\"id is \" + id) 十二、ArkTS 互操作和倉頡多線程 ArkTS 是單線程執行的虛擬機,在運行時上沒有對
    發表于 08-01 11:01

    鴻蒙原生應用元服務開發-倉頡ArkTS相互操作(一)

    ArkTS 運行時接口,為用戶提供級別的 ArkTS 互操作能力。一、使用場景: 1.在 ArkTS 應用開發倉頡模塊:把用戶倉頡代碼封
    發表于 07-31 17:43

    鴻蒙語言基礎:ohos.worker 啟動一個Worker

    Worker是與主線程并行的獨立線程。創建Worker線程稱之為宿主線程,
    的頭像 發表于 07-11 17:03 ?728次閱讀
    <b class='flag-5'>鴻蒙</b>語言基礎<b class='flag-5'>類</b><b class='flag-5'>庫</b>:ohos.<b class='flag-5'>worker</b> 啟動一個<b class='flag-5'>Worker</b>

    多線程設計模式到對 CompletableFuture 的應用

    最近在開發 延保服務 頻道頁時,為了提高查詢效率,使用到了多線程技術。為了對多線程方案設計有更加充分的了解,在業余時間讀完了《圖解 Java 多線程設計模式》這本書,覺得收獲良多。本篇
    的頭像 發表于 06-26 14:18 ?604次閱讀
    從<b class='flag-5'>多線程</b>設計模式到對 CompletableFuture 的應用

    鴻蒙開發線程模型

    FA模型下的線程主要有如下三
    的頭像 發表于 06-24 17:27 ?641次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>:<b class='flag-5'>線程</b>模型

    鴻蒙開發:【線程模型】

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