91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

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

鴻蒙OS開發(fā)實例:【ArkTS類庫多線程I/O密集型任務開發(fā)】

jf_46214456 ? 2024-04-01 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

使用異步并發(fā)可以解決單次I/O任務阻塞的問題,但是如果遇到I/O密集型任務,同樣會阻塞線程中其它任務的執(zhí)行,這時需要使用多線程并發(fā)能力來進行解決。

I/O密集型任務的性能重點通常不在于CPU的處理能力,而在于I/O操作的速度和效率。這種任務通常需要頻繁地進行磁盤讀寫、網(wǎng)絡通信等操作。此處以頻繁讀寫系統(tǒng)文件來模擬I/O密集型并發(fā)任務的處理。

定義并發(fā)函數(shù),內(nèi)部密集調(diào)用I/O能力。

import fs from '@ohos.file.fs';

// 定義并發(fā)函數(shù),內(nèi)部密集調(diào)用I/O能力
@Concurrent
async function concurrentTest(fileList: string[]) {
  // 寫入文件的實現(xiàn)
  async function write(data, filePath) {
    let file = await fs.open(filePath, fs.OpenMode.READ_WRITE);
    await fs.write(file.fd, data);
    fs.close(file);
  }
  // 循環(huán)寫文件操作
  for (let i = 0; i < fileList.length; i++) {
    write('Hello World!', fileList[i]).then(() = > {
      console.info(`Succeeded in writing the file. FileList: ${fileList[i]}`);
    }).catch((err) = > {
      console.error(`Failed to write the file. Code is ${err.code}, message is ${err.message}`)
      return false;
    })
  }
  return true;
}

開始前熟悉鴻蒙文檔

鴻蒙OS開發(fā)更多內(nèi)容↓點擊HarmonyOSOpenHarmony技術
鴻蒙技術文檔《鴻蒙NEXT星河版開發(fā)學習文檔》

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

使用TaskPool執(zhí)行包含密集I/O的并發(fā)函數(shù):通過調(diào)用execute()方法執(zhí)行任務,并在回調(diào)中進行調(diào)度結(jié)果處理。示例中的filePath1和filePath2的獲取方式請參見獲取應用文件路徑。

import taskpool from '@ohos.taskpool';

let filePath1 = ...; // 應用文件路徑
let filePath2 = ...;

// 使用TaskPool執(zhí)行包含密集I/O的并發(fā)函數(shù)
// 數(shù)組較大時,I/O密集型任務任務分發(fā)也會搶占主線程,需要使用多線程能力
taskpool.execute(concurrentTest, [filePath1, filePath2]).then((ret) = > {
  // 調(diào)度結(jié)果處理
  console.info(`The result: ${ret}`);
})

本文參考引用HarmonyOS官方開發(fā)文檔,基于API9。

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

    關注

    0

    文章

    279

    瀏覽量

    20447
  • 鴻蒙
    +關注

    關注

    60

    文章

    2620

    瀏覽量

    44063
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    191

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    I/O密集型任務開發(fā)指導

    使用異步并發(fā)可以解決單次I/O任務阻塞的問題,但是如果遇到I/O密集型
    發(fā)表于 06-19 07:19

    CPU密集型任務開發(fā)指導

    CPU密集型任務是指需要占用系統(tǒng)資源處理大量計算能力的任務,需要長時間運行,這段時間會阻塞線程其它事件的處理,不適宜放在主線程進行。例如圖像
    發(fā)表于 06-19 06:05

    TaskPool和Worker的對比分析

    askPool(任務池)和Worker的作用是為應用程序提供一個多線程的運行環(huán)境,用于處理耗時的計算任務或其他密集型任務。可以有效地避免這
    發(fā)表于 06-18 06:43

    什么是ArkTS

    、提高系統(tǒng)的整體性能,開發(fā)者無需關心線程實例的生命周期。 Worker支持多線程并發(fā),支持Worker線程和宿主
    發(fā)表于 06-17 06:24

    鴻蒙5開發(fā)寶藏案例分享---跨線程性能優(yōu)化指南

    ;>Worker</span>做多線程開發(fā)時,總遇到對象跨線程卡頓的問題,原來鴻蒙早就提供了解決方案。下面結(jié)合代碼和實戰(zhàn)案例,帶你徹底玩轉(zhuǎn)性能優(yōu)化! 一、痛點:跨
    發(fā)表于 06-12 17:13

    鴻蒙5開發(fā)寶藏案例分享---切面編程實戰(zhàn)揭秘

    鴻蒙切面編程(AOP)實戰(zhàn)指南:隱藏的寶藏功能大揭秘! 大家好!今天在翻鴻蒙開發(fā)者文檔時,意外發(fā)現(xiàn)了官方埋藏的「切面編程」寶藏案例!實際開發(fā)中這些技巧能大幅提升效率,卻很少被提及。下面
    發(fā)表于 06-12 16:21

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

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

    借助NVIDIA技術實現(xiàn)機器人裝配和接觸密集型操作

    本期 NVIDIA 機器人研究與開發(fā)摘要 (R2D2) 將探討 NVIDIA 研究中心針對機器人裝配任務的多種接觸密集型操作工作流,以及它們?nèi)绾谓鉀Q傳統(tǒng)固定自動化在魯棒性、適應性和可擴展性等方面的關鍵挑戰(zhàn)。
    的頭像 發(fā)表于 06-04 13:51 ?225次閱讀
    借助NVIDIA技術實現(xiàn)機器人裝配和接觸<b class='flag-5'>密集型</b>操作

    進程、線程、協(xié)程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!

    in range(n)) ? async def io_bound_task(url): # 模擬I/O密集型任務 async with aiohttp.ClientSessio
    發(fā)表于 03-26 09:27

    請問如何在Python中實現(xiàn)多線程與多進程的協(xié)作?

    大家好!我最近在開發(fā)一個Python項目時,需要同時處理多個任務,且每個任務需要不同的計算資源。我想通過多線程和多進程的組合來實現(xiàn)并發(fā),但遇到了一些問題。 具體來說,我有兩個
    發(fā)表于 03-11 06:57

    鴻蒙文件傳輸三方上線開源鴻蒙社區(qū) 十行代碼實現(xiàn)大文件高速傳輸

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

    金倉數(shù)據(jù)入選《2024年度專利密集型產(chǎn)品名單》

    2月8日, 國家專利密集型產(chǎn)品備案認定試點平臺公布了《2024年度專利密集型產(chǎn)品名單》,由電科金倉自主研發(fā)的金倉數(shù)據(jù)管理系統(tǒng)(KingbaseES)憑借扎實的技術積淀與市場驗證,成功入選該名
    的頭像 發(fā)表于 02-23 15:42 ?470次閱讀
    金倉數(shù)據(jù)<b class='flag-5'>庫</b>入選《2024年度專利<b class='flag-5'>密集型</b>產(chǎn)品名單》

    socket 多線程編程實現(xiàn)方法

    是指在同一個進程中運行多個線程,每個線程可以獨立執(zhí)行任務線程共享進程的資源,如內(nèi)存空間和文件句柄,但每個線程有自己的程序計數(shù)器、寄存器集合
    的頭像 發(fā)表于 11-12 14:16 ?1017次閱讀

    怎么在JAVA中確定線性池大小

    在JAVA中確定線性池大小,分別介紹CPU密集型任務I/O密集型任務及其處理方法。
    的頭像 發(fā)表于 10-24 14:02 ?484次閱讀

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

    = data.getId() console.log(\"id is \" + id) 十二、ArkTS 互操作和倉頡多線程 ArkTS 是單線程執(zhí)行的虛擬機,在運行時上沒有對
    發(fā)表于 08-01 11:01
    主站蜘蛛池模板: 手机看片福利盒子久久青 | 亚洲美女视频一区 | 国产免费一级高清淫日本片 | 在线免费国产 | 黄色三级视频 | 青青青草国产 | 加勒比黑人喝羽月希奶水 | 久久婷婷激情综合色综合也去 | 国产一级一片免费播放视频 | 美女写真mm爽爽爽 | 亚洲国产精品综合久久久 | 手机在线黄色网址 | 丁香花在线观看免费观看 | 色5月婷婷 | 久久久www免费人成看片 | 亚洲爽爽网站 | 国产精品大尺度尺度视频 | 婷婷综合影院 | 国产精品青草久久 | 丁香六月 久久久 | 精品国产自在现线看久久 | 奇米7777| 亚洲成a人v在线观看 | 国产一二精品 | 男人在线网站 | 久久99国产精品免费观看 | www.狠狠艹| 色婷婷一区二区三区四区成人网 | 天天看黄 | 久久午夜免费视频 | 成在线人永久免费播放视频 | www.五月婷| 日本特黄a级高清免费酷网 日本特黄色大片 | 1024手机看片欧美日韩 | 久久精品男人影院 | 色噜噜噜噜噜在线观看网站 | 亚洲午夜久久久久久噜噜噜 | 看毛片网 | 亚洲 欧美 另类 综合 日韩 | 日韩三级免费观看 | 亚洲 欧美 精品专区 极品 |