欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OS開發(fā)實(shí)例:【ArkTS類庫多線程CPU密集型任務(wù)TaskPool】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-01 22:25 ? 次閱讀

CPU密集型任務(wù)是指需要占用系統(tǒng)資源處理大量計(jì)算能力的任務(wù),需要長時(shí)間運(yùn)行,這段時(shí)間會(huì)阻塞線程其它事件的處理,不適宜放在主線程進(jìn)行。例如圖像處理、視頻編碼、數(shù)據(jù)分析等。

基于多線程并發(fā)機(jī)制處理CPU密集型任務(wù)可以提高CPU利用率,提升應(yīng)用程序響應(yīng)速度。

當(dāng)進(jìn)行一系列同步任務(wù)時(shí),推薦使用Worker;而進(jìn)行大量或調(diào)度點(diǎn)較為分散的獨(dú)立任務(wù)時(shí),不方便使用8個(gè)Worker去做負(fù)載管理,推薦采用TaskPool。接下來將以圖像直方圖處理以及后臺(tái)長時(shí)間的模型預(yù)測(cè)任務(wù)分別進(jìn)行舉例。

使用TaskPool進(jìn)行圖像直方圖處理

1.實(shí)現(xiàn)圖像處理的業(yè)務(wù)邏輯。

2.數(shù)據(jù)分段,將各段數(shù)據(jù)通過不同任務(wù)的執(zhí)行完成圖像處理。

3.創(chuàng)建Task,通過execute()執(zhí)行任務(wù),在當(dāng)前任務(wù)結(jié)束后,會(huì)將直方圖處理結(jié)果同時(shí)返回。

結(jié)果數(shù)組匯總處理。

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

import taskpool from '@ohos.taskpool';

@Concurrent
function imageProcessing(dataSlice: ArrayBuffer) {
  // 步驟1: 具體的圖像處理操作及其他耗時(shí)操作
  return dataSlice;
}

function histogramStatistic(pixelBuffer: ArrayBuffer) {
  // 步驟2: 分成三段并發(fā)調(diào)度
  let number = pixelBuffer.byteLength / 3;
  let buffer1 = pixelBuffer.slice(0, number);
  let buffer2 = pixelBuffer.slice(number, number * 2);
  let buffer3 = pixelBuffer.slice(number * 2);

  let task1 = new taskpool.Task(imageProcessing, buffer1);
  let task2 = new taskpool.Task(imageProcessing, buffer2);
  let task3 = new taskpool.Task(imageProcessing, buffer3);

  taskpool.execute(task1).then((ret: ArrayBuffer[]) = > {
    // 步驟3: 結(jié)果處理
  });
  taskpool.execute(task2).then((ret: ArrayBuffer[]) = > {
    // 步驟3: 結(jié)果處理
  });
  taskpool.execute(task3).then((ret: ArrayBuffer[]) = > {
    // 步驟3: 結(jié)果處理
  });
}

@Entry
@Component
struct Index {
  @State message: string = 'Hello World'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() = > {
            let data: ArrayBuffer;
            histogramStatistic(data);
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10908

    瀏覽量

    213085
  • 多線程
    +關(guān)注

    關(guān)注

    0

    文章

    278

    瀏覽量

    20075
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2393

    瀏覽量

    43079
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    190

    瀏覽量

    4547
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HarmonyOS CPU與I/O密集型任務(wù)開發(fā)指導(dǎo)

    。 基于多線程并發(fā)機(jī)制處理CPU密集型任務(wù)可以提高CPU利用率,提升應(yīng)用程序響應(yīng)速度。 當(dāng)進(jìn)行一系列同步
    的頭像 發(fā)表于 02-18 10:17 ?1011次閱讀
    HarmonyOS <b class='flag-5'>CPU</b>與I/O<b class='flag-5'>密集型</b><b class='flag-5'>任務(wù)</b><b class='flag-5'>開發(fā)</b>指導(dǎo)

    鴻蒙OS開發(fā)案例:【ArkTS多線程CPU密集型任務(wù)Worker】

    通過某地區(qū)提供的房價(jià)數(shù)據(jù)訓(xùn)練一個(gè)簡易的房價(jià)預(yù)測(cè)模型,該模型支持通過輸入房屋面積和房間數(shù)量去預(yù)測(cè)該區(qū)域的房價(jià),模型需要長時(shí)間運(yùn)行,房價(jià)預(yù)測(cè)需要使用前面的模型運(yùn)行結(jié)果,因此需要使用Worker。
    的頭像 發(fā)表于 04-01 21:55 ?1194次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</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'>CPU</b><b class='flag-5'>密集型</b><b class='flag-5'>任務(wù)</b>Worker】

    ArkTS語言基礎(chǔ)-解析

    ArkTS語言基礎(chǔ)是HarmonyOS系統(tǒng)上為應(yīng)用開發(fā)者提供的常用基礎(chǔ)能力,主要包含能力如下圖所示。 圖1 ArkTS語言基礎(chǔ)
    發(fā)表于 02-20 16:44

    鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)概述

    ArkTS語言基礎(chǔ)是HarmonyOS系統(tǒng)上為應(yīng)用開發(fā)者提供的常用基礎(chǔ)能力,主要包含能力如下圖所示。 1.提供異步并發(fā)和多線程并發(fā)的能
    發(fā)表于 03-05 15:42

    鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)多線程CPU密集型任務(wù)TaskPool

    CPU密集型任務(wù)是指需要占用系統(tǒng)資源處理大量計(jì)算能力的任務(wù),需要長時(shí)間運(yùn)行,這段時(shí)間會(huì)阻塞線程其它事件的處理,不適宜放在主
    發(fā)表于 03-19 14:14

    鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)多線程I/O密集型任務(wù)開發(fā)

    使用異步并發(fā)可以解決單次I/O任務(wù)阻塞的問題,但是如果遇到I/O密集型任務(wù),同樣會(huì)阻塞線程中其它任務(wù)的執(zhí)行,這時(shí)需要使用
    發(fā)表于 03-21 14:57

    鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)多線程TaskPool和Worker的對(duì)比(一)

    TaskPool任務(wù)池)和Worker的作用是為應(yīng)用程序提供一個(gè)多線程的運(yùn)行環(huán)境,用于處理耗時(shí)的計(jì)算任務(wù)或其他密集型
    發(fā)表于 03-25 14:11

    鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)多線程TaskPool和Worker的對(duì)比(二)

    TaskPool運(yùn)作機(jī)制 圖1 TaskPool運(yùn)作機(jī)制示意圖 TaskPool支持開發(fā)者在主線程封裝
    發(fā)表于 03-26 15:25

    什么時(shí)候要使用多線程

    什么時(shí)候要使用多線程cpu密集型:(比如一個(gè)while( true ){ i++;})IO密集型:(比如一個(gè)從磁盤拷貝數(shù)據(jù)到另一個(gè)磁盤的拷貝進(jìn)程)1)計(jì)算
    發(fā)表于 09-06 07:25

    HarmonyOS CPU與I/O密集型任務(wù)開發(fā)指導(dǎo)

    一、CPU密集型任務(wù)開發(fā)指導(dǎo) CPU密集型任務(wù)是指需
    發(fā)表于 09-26 16:29

    HarmonyOS語言基礎(chǔ)開發(fā)指南上線啦!

    并發(fā)能力,適用于單次I/O任務(wù)開發(fā)場(chǎng)景。 ○ TaskPool和Worker提供多線程并發(fā)能力,適用于CPU
    發(fā)表于 10-18 16:36

    鴻蒙APP開發(fā):【ArkTS多線程TaskPool和Worker的對(duì)比

    TaskPool任務(wù)池)和Worker的作用是為應(yīng)用程序提供一個(gè)多線程的運(yùn)行環(huán)境,用于處理耗時(shí)的計(jì)算任務(wù)或其他密集型
    的頭像 發(fā)表于 03-26 22:09 ?715次閱讀
    <b class='flag-5'>鴻蒙</b>APP<b class='flag-5'>開發(fā)</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>和Worker的對(duì)比

    鴻蒙OS開發(fā)實(shí)例:【ArkTS多線程I/O密集型任務(wù)開發(fā)

    使用異步并發(fā)可以解決單次I/O任務(wù)阻塞的問題,但是如果遇到I/O密集型任務(wù),同樣會(huì)阻塞線程中其它任務(wù)的執(zhí)行,這時(shí)需要使用
    的頭像 發(fā)表于 04-01 16:32 ?589次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b><b class='flag-5'>多線程</b>I/O<b class='flag-5'>密集型</b><b class='flag-5'>任務(wù)</b><b class='flag-5'>開發(fā)</b>】

    鴻蒙OS開發(fā)實(shí)例:【ArkTS多線程@Concurrent裝飾器校驗(yàn)并發(fā)函數(shù)】

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

    鴻蒙開發(fā):【線程模型】

    管理其他線程ArkTS引擎實(shí)例,例如使用TaskPool任務(wù)池)創(chuàng)建任務(wù)或取消
    的頭像 發(fā)表于 06-13 16:38 ?461次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>線程</b>模型】