RM新时代网站-首页

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

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

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

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

HarmonyOS開發(fā)者 ? 來源:未知 ? 2023-10-18 16:20 ? 次閱讀

語言基礎(chǔ)類庫提供哪些功能?多線程并發(fā)如何實現(xiàn)?TaskPool(任務(wù)池)和Worker在實現(xiàn)和使用場景上有何不同?

針對開發(fā)者關(guān)注的并發(fā)等語言基礎(chǔ)類庫的相關(guān)能力,我們在新推出的語言基礎(chǔ)類庫開發(fā)指南中提供了詳細(xì)的介紹和開發(fā)指導(dǎo),幫助開發(fā)者全面了解并發(fā)實現(xiàn)、容器類庫基礎(chǔ)操作、XML的生成解析與轉(zhuǎn)換等。

本期HarmonyOS開發(fā)者資料直通車帶您快速了解內(nèi)容干貨~

語言基礎(chǔ)類庫文檔上新介紹

語言基礎(chǔ)類庫開發(fā)指南為HarmonyOS應(yīng)用開發(fā)者提供了常用的基礎(chǔ)能力:

  • 提供異步并發(fā)和多線程并發(fā)的能力。

  • 提供常見的容器類庫增、刪、改、查的能力。

  • 提供XML生成、解析與轉(zhuǎn)換URI/URL構(gòu)造和解析的能力。

  • 提供常見的字符串和二進(jìn)制數(shù)據(jù)處理的能力,以及控制臺打印的相關(guān)能力。

  • 提供獲取進(jìn)程信息和操作進(jìn)程的能力。

wKgZomUvx5qABj8YAAJLGrSAVw4130.png

ArkTS語言基礎(chǔ)類庫能力示意圖

本次上新的語言基礎(chǔ)類庫開發(fā)指南主要針對并發(fā)能力、容器類庫能力、XML生成解析與轉(zhuǎn)換這三大方面,全面清晰地講解了各自的實現(xiàn)機(jī)制并提供了對應(yīng)的具體示例和指導(dǎo),助力開發(fā)者實現(xiàn)應(yīng)用開發(fā)。

開發(fā)者可在HarmonyOS文檔官網(wǎng),直接搜索想了解的場景和能力,快速直達(dá)文檔進(jìn)行瀏覽。

如何實現(xiàn)異步并發(fā)和多線程并發(fā)

并發(fā)是指在同一時間段內(nèi),能夠處理多個任務(wù)的能力。為了提升應(yīng)用的響應(yīng)速度與幀率,以及防止耗時任務(wù)對主線程的干擾,HarmonyOS系統(tǒng)提供了異步并發(fā)和多線程并發(fā)兩種處理策略。

  • 異步并發(fā):是指異步代碼在執(zhí)行到一定程度后會被暫停,以便在未來某個時間點繼續(xù)執(zhí)行,這種情況下,同一時間只有一段代碼在執(zhí)行。

  • 多線程并發(fā):允許在同一時間段內(nèi)同時執(zhí)行多段代碼。在主線程繼續(xù)響應(yīng)用戶操作和更新UI的同時,后臺也能執(zhí)行耗時操作,從而避免應(yīng)用出現(xiàn)卡頓。

ArkTS支持異步并發(fā)和多線程并發(fā)。

  • Promise和async/await提供異步并發(fā)能力,適用于單次I/O任務(wù)的開發(fā)場景。

  • TaskPool和Worker提供多線程并發(fā)能力,適用于CPU密集型任務(wù)、I/O密集型任務(wù)和同步任務(wù)等并發(fā)場景。

1、異步并發(fā)的實現(xiàn)

Promise和async/await提供異步并發(fā)能力,是標(biāo)準(zhǔn)的JS異步語法。異步代碼會被掛起并在之后繼續(xù)執(zhí)行,同一時間只有一段代碼執(zhí)行。

  • Promise是一種用于處理異步操作的對象,可以將異步操作轉(zhuǎn)換為類似于同步操作的風(fēng)格,以方便代碼編寫和維護(hù)。Promise提供了一個狀態(tài)機(jī)制來管理異步操作的不同階段,并提供了一些方法來注冊回調(diào)函數(shù)以處理異步操作的成功或失敗的結(jié)果。

  • async/await是一種用于處理異步操作的Promise語法糖,使得編寫異步代碼變得更加簡單和易讀。通過使用async關(guān)鍵字聲明一個函數(shù)為異步函數(shù),并使用await關(guān)鍵字等待Promise的解析(完成或拒絕),以同步的方式編寫異步操作的代碼。

異步并發(fā)能力適用于單次I/O任務(wù)的場景開發(fā),例如一次網(wǎng)絡(luò)請求、一次文件讀寫等操作。

文檔鏈接

異步并發(fā)概述https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/async-concurrency-overview-0000001632690002-V3

單次I/O任務(wù)開發(fā)指導(dǎo)https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/single-io-development-0000001681129701-V3

2、多線程并發(fā)的實現(xiàn)

ArkTS提供了TaskPool和Worker兩種并發(fā)能力供開發(fā)者選擇。TaskPool和Worker的作用是為應(yīng)用程序提供一個多線程的運(yùn)行環(huán)境,用于處理耗時的計算任務(wù)或其他密集型任務(wù)??梢杂行У乇苊膺@些任務(wù)阻塞主線程,從而最大化系統(tǒng)的利用率,降低整體資源消耗,并提高系統(tǒng)的整體性能。

由于TaskPool的工作線程會綁定系統(tǒng)的調(diào)度優(yōu)先級,并且支持負(fù)載均衡(自動擴(kuò)縮容),而Worker需要開發(fā)者自行創(chuàng)建,存在創(chuàng)建耗時以及不支持設(shè)置調(diào)度優(yōu)先級,故在性能方面使用TaskPool會優(yōu)于Worker,因此大多數(shù)場景推薦使用TaskPool。

TaskPool偏向獨立任務(wù)(線程級)維度,超長任務(wù)(大于3分鐘)會被系統(tǒng)自動回收;而Worker偏向線程的維度,支持長時間占據(jù)線程執(zhí)行。

TaskPool和Worker各自的實現(xiàn)特點和適用場景存在差異,詳細(xì)請參見TaskPool和Worker的對比。

多線程并發(fā)能力,適用于CPU密集型任務(wù)、I/O密集型任務(wù)和同步任務(wù)等并發(fā)場景。

文檔鏈接

TaskPoolWorker的對比:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/taskpool-vs-worker-0000001632849934-V3

CPU密集型任務(wù)開發(fā)指導(dǎo)https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/cpu-intensive-task-development-0000001681369757-V3

I/O密集型任務(wù)開發(fā)指導(dǎo)https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/io-intensive-task-development-0000001681489597-V3

同步任務(wù)開發(fā)指導(dǎo)https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/sync-task-development-0000001632370254-V3

容器類庫的基礎(chǔ)操作

容器類庫,用于存儲各種數(shù)據(jù)類型的元素,并具備一系列處理數(shù)據(jù)元素的方法。

容器類采用了類似靜態(tài)語言的方式來實現(xiàn),并通過對存儲位置以及屬性的限制,讓每種類型的數(shù)據(jù)都能在完成自身功能的基礎(chǔ)上去除冗余邏輯,保證了數(shù)據(jù)的高效訪問,提升了應(yīng)用的性能。

當(dāng)前提供了線性和非線性兩類容器,共14種。每種容器都有自身的特性及使用場景。

1、線性容器

線性容器實現(xiàn)能按順序訪問的數(shù)據(jù)結(jié)構(gòu),其底層主要通過數(shù)組實現(xiàn),包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七種。

線性容器,充分考慮了數(shù)據(jù)訪問的速度,運(yùn)行時(Runtime)通過一條字節(jié)碼指令就可以完成增、刪、改、查等操作。

2、非線性容器

非線性容器實現(xiàn)能快速查找的數(shù)據(jù)結(jié)構(gòu),其底層通過hash或者紅黑樹實現(xiàn),包括HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet、PlainArray七種。非線性容器中的key及value的類型均滿足ECMA標(biāo)準(zhǔn)。

文檔鏈接

線性容器https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/linear-container-0000001681209893-V3

非線性容器https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/nonlinear-container-0000001632530094-V3

XML生成、解析與轉(zhuǎn)換

XML(可擴(kuò)展標(biāo)記語言)是一種用于描述數(shù)據(jù)的標(biāo)記語言,旨在提供一種通用的方式來傳輸和存儲數(shù)據(jù),特別是Web應(yīng)用程序中經(jīng)常使用的數(shù)據(jù)。XML并不預(yù)定義標(biāo)記。因此,XML更加靈活,并且可以適用于廣泛的應(yīng)用領(lǐng)域。

語言基礎(chǔ)類庫提供了XML相關(guān)的基礎(chǔ)能力,包括:XML的生成、XML的解析和XML的轉(zhuǎn)換。

1、XML生成

XML模塊提供XmlSerializer類來生成XML文件,輸入為固定長度的Arraybuffer或DataView對象,該對象用于存放輸出的XML數(shù)據(jù)。通過調(diào)用不同的方法來寫入不同的內(nèi)容,可以生成一份完整的XML文件。

2、XML解析

對于以XML作為載體傳遞的數(shù)據(jù),實際使用中需要對相關(guān)的節(jié)點進(jìn)行解析,一般包括解析XML標(biāo)簽和標(biāo)簽值、解析XML屬性和屬性值、解析XML事件類型和元素深度三類場景。

XML模塊提供XmlPullParser類對XML文件解析,輸入為含有XML文本的ArrayBufffer或DataView,輸出為解析得到的信息。

3、XML轉(zhuǎn)換

將XML文本轉(zhuǎn)換為JavaScript對象可以更輕松地處理和操作數(shù)據(jù),并且更適合在JavaScript應(yīng)用程序中使用。

語言基礎(chǔ)類庫提供ConvertXML類將XML文本轉(zhuǎn)換為JavaScript對象,輸入為待轉(zhuǎn)換的XML字符串及轉(zhuǎn)換選項,輸出為轉(zhuǎn)換后的JavaScript對象。

文檔鏈接

XML生成https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/xml-generation-0000001681489601-V3

XML解析https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/xml-parsing-0000001632370258-V3

XML轉(zhuǎn)換https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/xml-conversion-0000001632690010-V3

我們期待您的反饋

以上就是本期為大家準(zhǔn)備的HarmonyOS語言基礎(chǔ)類庫開發(fā)指南上新內(nèi)容,希望能夠幫助開發(fā)者更高效地探索、體驗、上手HarmonyOS。

同時,我們十分重視開發(fā)者的意見,歡迎各位開發(fā)者在HarmonyOS應(yīng)用開發(fā)官網(wǎng)積極反饋意見。

我們將持續(xù)提升文檔體驗、豐富和完善內(nèi)容,感謝各位開發(fā)者的支持及信賴,您的滿意是我們持續(xù)提升文檔體驗的目標(biāo)和動力。

請關(guān)注HarmonyOS開發(fā)者公眾號更多HarmonyOS開發(fā)者資料直通車相關(guān)推送,以獲取最新文檔和內(nèi)容資源!


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

    關(guān)注

    79

    文章

    1973

    瀏覽量

    30143

原文標(biāo)題:HarmonyOS語言基礎(chǔ)類庫開發(fā)指南上線啦!

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    超值音棒參考設(shè)計套件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《超值音棒參考設(shè)計套件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 12-21 09:16 ?0次下載
    超值音棒參考設(shè)計套件<b class='flag-5'>開發(fā)指南</b>

    BQ7690x軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ7690x軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 11-07 10:19 ?0次下載
    BQ7690x軟件<b class='flag-5'>開發(fā)指南</b>

    MSP430? MCU開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《MSP430? MCU開發(fā)指南.pdf》資料免費下載
    發(fā)表于 11-06 09:57 ?0次下載
    MSP430? MCU<b class='flag-5'>開發(fā)指南</b>

    MSP430L092開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《MSP430L092開發(fā)指南.pdf》資料免費下載
    發(fā)表于 10-18 10:06 ?0次下載
    MSP430L092<b class='flag-5'>開發(fā)指南</b>

    MSP430 MCU開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《MSP430 MCU開發(fā)指南.pdf》資料免費下載
    發(fā)表于 10-10 17:19 ?1次下載

    PGA460軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《PGA460軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 10-09 10:30 ?0次下載
    PGA460軟件<b class='flag-5'>開發(fā)指南</b>

    TUSS44x0軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《TUSS44x0軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 09-14 10:59 ?0次下載
    TUSS44x0軟件<b class='flag-5'>開發(fā)指南</b>

    LVGL開發(fā)指南介紹

    電子發(fā)燒友網(wǎng)站提供《LVGL開發(fā)指南介紹.pdf》資料免費下載
    發(fā)表于 09-09 10:24 ?16次下載

    BQ769x2軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ769x2軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 08-26 09:12 ?0次下載
    BQ769x2軟件<b class='flag-5'>開發(fā)指南</b>

    RA/RX電機(jī)應(yīng)用開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《RA/RX電機(jī)應(yīng)用開發(fā)指南.pdf》資料免費下載
    發(fā)表于 08-15 09:44 ?0次下載
    RA/RX電機(jī)應(yīng)用<b class='flag-5'>開發(fā)指南</b>

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

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

    迅為RK3568開發(fā)板驅(qū)動開發(fā)指南-輸入子系統(tǒng)

    迅為RK3568開發(fā)板驅(qū)動開發(fā)指南-輸入子系統(tǒng)
    的頭像 發(fā)表于 02-23 15:11 ?860次閱讀
    迅為RK3568<b class='flag-5'>開發(fā)</b>板驅(qū)動<b class='flag-5'>開發(fā)指南</b>-輸入子系統(tǒng)

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

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

    RA家族QE電機(jī)應(yīng)用開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《RA家族QE電機(jī)應(yīng)用開發(fā)指南.pdf》資料免費下載
    發(fā)表于 01-31 09:57 ?0次下載
    RA家族QE電機(jī)應(yīng)用<b class='flag-5'>開發(fā)指南</b>

    keil arm軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《keil arm軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 01-26 15:51 ?7次下載
    RM新时代网站-首页