91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

鴻蒙系統(tǒng)中線程管理的使用

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:鴻蒙技術(shù)社區(qū) ? 作者:開(kāi)鴻HOS小鴻 ? 2021-09-28 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

不同應(yīng)用在各自獨(dú)立的進(jìn)程中運(yùn)行。當(dāng)應(yīng)用以任何形式啟動(dòng)時(shí),系統(tǒng)為其創(chuàng)建進(jìn)程,該進(jìn)程將持續(xù)運(yùn)行。當(dāng)進(jìn)程完成當(dāng)前任務(wù)處于等待狀態(tài),且系統(tǒng)資源不足時(shí),系統(tǒng)自動(dòng)回收。

在啟動(dòng)應(yīng)用時(shí),系統(tǒng)會(huì)為該應(yīng)用創(chuàng)建一個(gè)稱(chēng)為“主線程”的執(zhí)行線程。該線程隨著應(yīng)用創(chuàng)建或消失,是應(yīng)用的核心線程。UI 界面的顯示和更新等操作,都是在主線程上進(jìn)行。

主線程又稱(chēng) UI 線程,默認(rèn)情況下,所有的操作都是在主線程上執(zhí)行。如果需要執(zhí)行比較耗時(shí)的任務(wù)(如下載文件、查詢(xún)數(shù)據(jù)庫(kù)),可創(chuàng)建其他線程來(lái)處理。

如果應(yīng)用的業(yè)務(wù)邏輯比較復(fù)雜,可能需要?jiǎng)?chuàng)建多個(gè)線程來(lái)執(zhí)行多個(gè)任務(wù)。這種情況下,代碼復(fù)雜難以維護(hù),任務(wù)與線程的交互也會(huì)更加繁雜。

要解決此問(wèn)題,開(kāi)發(fā)者可以使用 TaskDispatcher 來(lái)分發(fā)不同的任務(wù)。

TaskDispatcher 介紹

TaskDispatcher 是一個(gè)任務(wù)分發(fā)器,它是 Ability 分發(fā)任務(wù)的基本接口,隱藏任務(wù)所在線程的實(shí)現(xiàn)細(xì)節(jié)。

為保證應(yīng)用有更好的響應(yīng)性,我們需要設(shè)計(jì)任務(wù)的優(yōu)先級(jí)。在 UI 線程上運(yùn)行的任務(wù)默認(rèn)以高優(yōu)先級(jí)運(yùn)行,如果某個(gè)任務(wù)無(wú)需等待結(jié)果,則可以用低優(yōu)先級(jí)。

線程優(yōu)先級(jí)介紹:

HIGH:最高任務(wù)優(yōu)先級(jí),比默認(rèn)優(yōu)先級(jí)、低優(yōu)先級(jí)的任務(wù)有更高的幾率得到執(zhí)行。

DEFAULT:默認(rèn)任務(wù)優(yōu)先級(jí), 比低優(yōu)先級(jí)的任務(wù)有更高的幾率得到執(zhí)行。

LOW:低任務(wù)優(yōu)先級(jí),比高優(yōu)先級(jí)、默認(rèn)優(yōu)先級(jí)的任務(wù)有更低的幾率得到執(zhí)行。

TaskDispatcher 具有多種實(shí)現(xiàn),每種實(shí)現(xiàn)對(duì)應(yīng)不同的任務(wù)分發(fā)器。在分發(fā)任務(wù)時(shí)可以指定任務(wù)的優(yōu)先級(jí),由同一個(gè)任務(wù)分發(fā)器分發(fā)出的任務(wù)具有相同的優(yōu)先級(jí)。

系統(tǒng)提供的任務(wù)分發(fā)器有:

GlobalTaskDispatcher

ParallelTaskDispatcher

SerialTaskDispatcher

SpecTaskDispatcher

實(shí)踐

①同步派發(fā)任務(wù) syncDispatch

發(fā)任務(wù)并在當(dāng)前線程等待任務(wù)執(zhí)行完成。在返回前,當(dāng)前線程會(huì)被阻塞:

/**

* 同步派發(fā)任務(wù)

*/

private void syncDispatch() {

TaskDispatcher globalTaskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);

globalTaskDispatcher.syncDispatch(new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “sync task1 run”);

}

});

HiLog.info(LABEL_LOG, “after sync task1”);

globalTaskDispatcher.syncDispatch(new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “sync task2 run”);

}

});

HiLog.info(LABEL_LOG, “after sync task2”);

globalTaskDispatcher.syncDispatch(new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “sync task3 run”);

}

});

HiLog.info(LABEL_LOG, “after sync task3”);

}

運(yùn)行之后查看日志:

ff7b8964-1fc0-11ec-82a8-dac502259ad0.png

從運(yùn)行結(jié)果我們可以看到,只有在當(dāng)前線程等待任務(wù)執(zhí)行完成之后才會(huì)繼續(xù)往下執(zhí)行,否則當(dāng)前線程會(huì)被阻塞。

所以在使用 syncDispatch 的時(shí)候我們需要注意,如果對(duì) syncDispatch 使用不當(dāng), 將會(huì)導(dǎo)致死鎖。

如下情形可能導(dǎo)致死鎖發(fā)生:

在專(zhuān)有線程上,利用該專(zhuān)有任務(wù)分發(fā)器進(jìn)行 syncDispatch。

在被某個(gè)串行任務(wù)分發(fā)器(dispatcher_a)派發(fā)的任務(wù)中,再次利用同一個(gè)串行任務(wù)分發(fā)器(dispatcher_a)對(duì)象派發(fā)任務(wù)。

在被某個(gè)串行任務(wù)分發(fā)器(dispatcher_a)派發(fā)的任務(wù)中,經(jīng)過(guò)數(shù)次派發(fā)任務(wù),最終又利用該(dispatcher_a)串行任務(wù)分發(fā)器派發(fā)任務(wù)。

例如:dispatcher_a 派發(fā)的任務(wù)使用 dispatcher_b 進(jìn)行任務(wù)的派發(fā),在 dispatcher_b 派發(fā)的任務(wù)中又利用 dispatcher_a 進(jìn)行派發(fā)任務(wù)。

串行任務(wù)分發(fā)器(dispatcher_a)派發(fā)的任務(wù)中利用串行任務(wù)分發(fā)器(dispatcher_b)進(jìn)行同步派發(fā)任務(wù),同時(shí) dispatcher_b 派發(fā)的任務(wù)中利用串行任務(wù)分發(fā)器(dispatcher_a)進(jìn)行同步派發(fā)任務(wù)。在特定的線程執(zhí)行順序下將導(dǎo)致死鎖。

②異步派發(fā)任務(wù) asyncDispatch

派發(fā)任務(wù),并立即返回,返回值是一個(gè)可用于取消任務(wù)的接口。

/**

* 異步派發(fā)任務(wù)

*/

private void asyncDispatch() {

TaskDispatcher globalTaskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);

Revocable revocable = globalTaskDispatcher.asyncDispatch(new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “async task1 run”);

}

});

HiLog.info(LABEL_LOG, “after async task1”);

}

運(yùn)行之后查看日志:

0001850a-1fc1-11ec-82a8-dac502259ad0.png

從運(yùn)行結(jié)果我們可以看到,只有在當(dāng)前線程等待任務(wù)執(zhí)行完成之后才會(huì)繼續(xù)往下執(zhí)行,否則當(dāng)前線程會(huì)被阻塞,所以在使用。

③異步延遲派發(fā)任務(wù) delayDispatch

異步執(zhí)行,函數(shù)立即返回,內(nèi)部會(huì)在延時(shí)指定時(shí)間后將任務(wù)派發(fā)到相應(yīng)隊(duì)列中。

延時(shí)時(shí)間參數(shù)僅代表在這段時(shí)間以后任務(wù)分發(fā)器會(huì)將任務(wù)加入到隊(duì)列中,任務(wù)的實(shí)際執(zhí)行時(shí)間可能晚于這個(gè)時(shí)間。

具體比這個(gè)數(shù)值晚多久,取決于隊(duì)列及內(nèi)部線程池的繁忙情況。

/**

* 異步延遲派發(fā)任務(wù)

*/

private void delayDispatch() {

final long callTime = System.currentTimeMillis();

final long delayTime = 50L;

TaskDispatcher globalTaskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);

Revocable revocable = globalTaskDispatcher.delayDispatch(new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “delayDispatch task1 run”);

final long actualDelay = System.currentTimeMillis() - callTime;

HiLog.info(LABEL_LOG, “actualDelayTime 》= delayTime: %{public}b”, (actualDelay 》= delayTime));

}

}, delayTime);

HiLog.info(LABEL_LOG, “after delayDispatch task1”);

}

運(yùn)行之后查看日志:

00860d66-1fc1-11ec-82a8-dac502259ad0.png

從運(yùn)行結(jié)果我們可以看出:

程序首先執(zhí)行“after delayDispatch task1”

然后執(zhí)行“delayDispatch task1 run”

最后執(zhí)行“actualDelayTime 》= delayTime: %{public}b”, (actualDelay 》= delayTime)

這里 actualDelayTime 》= delayTime: true 可以看出延時(shí)時(shí)間參數(shù)僅代表在這段時(shí)間以后任務(wù)分發(fā)器會(huì)將任務(wù)加入到隊(duì)列中,任務(wù)的實(shí)際執(zhí)行時(shí)間可能晚于這個(gè)時(shí)間。

④任務(wù)組 Group

表示一組任務(wù),且該組任務(wù)之間有一定的聯(lián)系,由 TaskDispatcher 執(zhí)行 createDispatchGroup 創(chuàng)建并返回。

將任務(wù)加入任務(wù)組,返回一個(gè)用于取消任務(wù)的接口。

/**

* 任務(wù)組

*/

private void dispatchGroup() {

String dispatcherName = “parallelTaskDispatcher”;

TaskDispatcher dispatcher = createParallelTaskDispatcher(dispatcherName, TaskPriority.DEFAULT);

// 創(chuàng)建任務(wù)組。

Group group = dispatcher.createDispatchGroup();

// 將任務(wù)1加入任務(wù)組,返回一個(gè)用于取消任務(wù)的接口。

dispatcher.asyncGroupDispatch(group, new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “download task1 is running”);

}

});

// 將與任務(wù)1相關(guān)聯(lián)的任務(wù)2加入任務(wù)組。

dispatcher.asyncGroupDispatch(group, new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “download task2 is running”);

}

});

// 在任務(wù)組中的所有任務(wù)執(zhí)行完成后執(zhí)行指定任務(wù)。

dispatcher.groupDispatchNotify(group, new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “the close task is running after all tasks in the group are completed”);

}

});

}

運(yùn)行之后查看日志:

00fbdb4a-1fc1-11ec-82a8-dac502259ad0.png

⑤同步設(shè)置屏障任務(wù) syncDispatchBarrier

在任務(wù)組上設(shè)立任務(wù)執(zhí)行屏障,同步等待任務(wù)組中的所有任務(wù)執(zhí)行完成,再執(zhí)行指定任務(wù)。

/**

* 同步設(shè)置屏障任務(wù)

*/

private void syncDispatchBarrier() {

String dispatcherName = “parallelTaskDispatcher”;

TaskDispatcher dispatcher = createParallelTaskDispatcher(dispatcherName, TaskPriority.DEFAULT);

// 創(chuàng)建任務(wù)組。

Group group = dispatcher.createDispatchGroup();

// 將任務(wù)加入任務(wù)組,返回一個(gè)用于取消任務(wù)的接口。

dispatcher.asyncGroupDispatch(group, new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “task1 is running”); // 1

}

});

dispatcher.asyncGroupDispatch(group, new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “task2 is running”); // 2

}

});

dispatcher.syncDispatchBarrier(new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “barrier”); // 3

}

});

HiLog.info(LABEL_LOG, “after syncDispatchBarrier”); // 4

}

運(yùn)行之后查看日志:

01a4c066-1fc1-11ec-82a8-dac502259ad0.png

⑥異步設(shè)置屏障任務(wù) asyncDispatchBarrier

在任務(wù)組上設(shè)立任務(wù)執(zhí)行屏障后直接返回,指定任務(wù)將在任務(wù)組中的所有任務(wù)執(zhí)行完成后再執(zhí)行。

/**

* 異步設(shè)置屏障任務(wù)

*/

private void asyncDispatchBarrier() {

TaskDispatcher dispatcher = createParallelTaskDispatcher(“dispatcherName”, TaskPriority.DEFAULT);

// 創(chuàng)建任務(wù)組。

Group group = dispatcher.createDispatchGroup();

// 將任務(wù)加入任務(wù)組,返回一個(gè)用于取消任務(wù)的接口。

dispatcher.asyncGroupDispatch(group, new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “task1 is running”); // 1

}

});

dispatcher.asyncGroupDispatch(group, new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “task2 is running”); // 2

}

});

dispatcher.asyncDispatchBarrier(new Runnable() {

@Override

public void run() {

HiLog.info(LABEL_LOG, “barrier”); // 3

}

});

HiLog.info(LABEL_LOG, “after asyncDispatchBarrier”); // 4

}

運(yùn)行之后查看日志:

02118cbe-1fc1-11ec-82a8-dac502259ad0.png

總結(jié)

線程它就像一面雙刃劍,用的好的時(shí)候可以給我們帶來(lái)事半功倍等效果,用的不好時(shí)就會(huì)給我們帶來(lái)困擾。

并且這個(gè)困擾還不是一時(shí)半會(huì)能解決掉的(因?yàn)榘l(fā)現(xiàn)問(wèn)題的時(shí)候,往往是到了需要優(yōu)化期了,各項(xiàng)業(yè)務(wù)相互牽扯),故在項(xiàng)目初期就需要嚴(yán)格考慮考量這些問(wèn)題了。

責(zé)任編輯:haq

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

    關(guān)注

    0

    文章

    510

    瀏覽量

    20829
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    69881

原文標(biāo)題:鴻蒙的線程管理,看完渾身通透!

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    中線安全守護(hù)者!安科瑞中線安防保護(hù)器根治零線電流過(guò)大隱患

    在低壓配電系統(tǒng)中,中性線(簡(jiǎn)稱(chēng)“中線”)作為電流回流的必經(jīng)之路,其安全性常常被忽視。隨著現(xiàn)代電力系統(tǒng)中非線性負(fù)載的大量增加,中線電流過(guò)大、斷線、過(guò)壓等問(wèn)題日益凸顯,成為電氣火災(zāi)和設(shè)備損
    的頭像 發(fā)表于 02-05 09:23 ?130次閱讀
    <b class='flag-5'>中線</b>安全守護(hù)者!安科瑞<b class='flag-5'>中線</b>安防保護(hù)器根治零線電流過(guò)大隱患

    ANSNP中線安防為末端配電系統(tǒng)”保駕護(hù)航“

    中線電纜發(fā)熱,加速絕緣老化 2)損壞電氣設(shè)備,三相電壓不平衡加劇 3)影響計(jì)量準(zhǔn)確性或引發(fā)保護(hù)裝置誤動(dòng)作 4)觸電風(fēng)險(xiǎn)增加,造成接地故障隱患 基于以上問(wèn)題,安科瑞終端電氣治理裝置——ANSNP中線安防保護(hù)器可滿(mǎn)足對(duì)末端供配電系統(tǒng)
    的頭像 發(fā)表于 01-20 11:24 ?326次閱讀
    ANSNP<b class='flag-5'>中線</b>安防為末端配電<b class='flag-5'>系統(tǒng)</b>”保駕護(hù)航“

    解析Linux的進(jìn)程、線程和協(xié)程

    系統(tǒng)資源。線程的引入使得多核處理器得以充分利用,因?yàn)槎?b class='flag-5'>線程程序可以更有效地分配和管理多核心的計(jì)算資源。 線程的特點(diǎn)包括: (1)共享性
    發(fā)表于 12-22 11:00

    線程系統(tǒng)

    ,我們把這個(gè)程序主體分割成一個(gè)個(gè)獨(dú)立的,無(wú)限循環(huán)且不能返回的小程序,這個(gè)小程序我們稱(chēng)之為線程。 每個(gè)線程都是獨(dú)立的,互不干擾的,且具備自身的優(yōu)先級(jí),它由操作系統(tǒng)調(diào)度管理。加入操作
    發(fā)表于 12-08 07:55

    鴻蒙系統(tǒng)對(duì)手機(jī)市場(chǎng)會(huì)產(chǎn)生怎樣的影響?現(xiàn)在汽車(chē)是不是也用上鴻蒙系統(tǒng)了?

    鴻蒙系統(tǒng)對(duì)手機(jī)市場(chǎng)會(huì)產(chǎn)生怎樣的影響?現(xiàn)在汽車(chē)是不是也用上鴻蒙系統(tǒng)了?
    發(fā)表于 12-04 20:47

    Linux多線程對(duì)比單線程的優(yōu)勢(shì)

    在Linux系統(tǒng)中,線程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。線程被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)行單位。一個(gè)進(jìn)程可以擁有多個(gè)線程,這些
    發(fā)表于 12-01 06:11

    為什么需要中線安防保護(hù)器?

    簡(jiǎn)婷 安科瑞電氣股份有限公司 上海嘉定 ?201801 技術(shù)支持18701998775 ? 治理中線電能質(zhì)量問(wèn)題的設(shè)備通常被稱(chēng)為中線安防保護(hù)器或中線電流消除器。這類(lèi)設(shè)備主要用于解決三相四線制供電
    的頭像 發(fā)表于 10-24 16:05 ?708次閱讀
    為什么需要<b class='flag-5'>中線</b>安防保護(hù)器?

    聚焦中線防護(hù)痛點(diǎn),安科瑞中線安防保護(hù)器賦能多場(chǎng)景用電安全

    在電氣安全防護(hù)體系中,中線(中性線)作為電力系統(tǒng)的關(guān)鍵組成部分,其穩(wěn)定性直接關(guān)系到用電設(shè)備的安全運(yùn)行與人員觸電風(fēng)險(xiǎn)防控。安科瑞中線安防保護(hù)器作為針對(duì)中線故障的專(zhuān)項(xiàng)防護(hù)設(shè)備,能有效解決
    的頭像 發(fā)表于 09-19 16:50 ?746次閱讀
    聚焦<b class='flag-5'>中線</b>防護(hù)痛點(diǎn),安科瑞<b class='flag-5'>中線</b>安防保護(hù)器賦能多場(chǎng)景用電安全

    HDC 2025:鴻蒙星閃,軟硬結(jié)合,絕佳“CP”

    分布式軟總線的技術(shù)特性,成為萬(wàn)物智聯(lián)時(shí)代的數(shù)字底座,可以作為智家中樞,統(tǒng)一調(diào)度和管理智能設(shè)備。開(kāi)源鴻蒙具有獨(dú)立、開(kāi)放、中立的特點(diǎn),基于開(kāi)源鴻蒙系統(tǒng)來(lái)構(gòu)建智慧家庭的
    的頭像 發(fā)表于 06-22 17:31 ?7057次閱讀
    HDC 2025:<b class='flag-5'>鴻蒙</b>星閃,軟硬結(jié)合,絕佳“CP”

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

    發(fā)現(xiàn)鴻蒙寶藏:跨線程序列化性能優(yōu)化實(shí)戰(zhàn)指南 大家好呀!今天在翻鴻蒙文檔時(shí)挖到一個(gè)超級(jí)實(shí)用的工具—— DevEco Profiler的序列化檢測(cè)功能 !平時(shí)用<span class
    發(fā)表于 06-12 17:13

    鴻蒙5開(kāi)發(fā)寶藏案例分享---分析幀率問(wèn)題

    ); } } 原因 : 循環(huán)計(jì)算阻塞主線程,無(wú)法在8.3ms(120Hz)內(nèi)完成渲染。 優(yōu)化方案 :改用系統(tǒng)動(dòng)畫(huà)API ,GPU自動(dòng)插值計(jì)算,解放主線程。 優(yōu)化后代碼 : Button(\'click
    發(fā)表于 06-12 17:07

    鴻蒙5開(kāi)發(fā)寶藏案例分享---應(yīng)用并發(fā)設(shè)計(jì)

    ?** 鴻蒙并發(fā)編程實(shí)戰(zhàn)指南:解鎖ArkTS多線程黑科技** 嘿,開(kāi)發(fā)者朋友們! 今天給大家扒一扒鴻蒙官方文檔里藏著的并發(fā)編程寶藏—— 100+實(shí)戰(zhàn)場(chǎng)景解決方案 !從金融理財(cái)?shù)接螒蜷_(kāi)發(fā),從折疊屏適配
    發(fā)表于 06-12 16:19

    國(guó)產(chǎn)操作系統(tǒng)加速崛起——鴻蒙電腦補(bǔ)齊鴻蒙生態(tài)最重要拼圖

    國(guó)產(chǎn)操作系統(tǒng)加速崛起——鴻蒙電腦補(bǔ)齊鴻蒙生態(tài)最重要拼圖 5月19日,首次應(yīng)用鴻蒙操作系統(tǒng)的個(gè)人電腦(PC)在四川成都正式發(fā)布。這標(biāo)志著我國(guó)擁
    的頭像 發(fā)表于 05-21 11:41 ?688次閱讀

    鴻蒙操作系統(tǒng)首登電腦端,華為開(kāi)啟鴻蒙辦公新時(shí)代

    2025年5月8日,華為在深圳舉辦了鴻蒙電腦技術(shù)與生態(tài)溝通會(huì),鴻蒙操作系統(tǒng)首次在電腦端亮相。這既是中國(guó)電子信息產(chǎn)業(yè)的歷史性時(shí)刻,也是華為鴻蒙辦公的新起點(diǎn)。 五年匠心打磨,
    發(fā)表于 05-08 14:20 ?6080次閱讀
    <b class='flag-5'>鴻蒙</b>操作<b class='flag-5'>系統(tǒng)</b>首登電腦端,華為開(kāi)啟<b class='flag-5'>鴻蒙</b>辦公新時(shí)代

    深度融入“純血鴻蒙”|芯海科技旗下康柚OKOK首批入駐鴻蒙NEXT系統(tǒng)

    3月20日,隨著首款全面搭載純血鴻蒙系統(tǒng)的"寬折疊"手機(jī)PuraX的發(fā)布,全面鴻蒙時(shí)代正悄然到來(lái)。鴻蒙NEXT(純血鴻蒙)自正式亮相以來(lái),這
    的頭像 發(fā)表于 03-21 18:04 ?1591次閱讀
    深度融入“純血<b class='flag-5'>鴻蒙</b>”|芯??萍计煜驴佃諳KOK首批入駐<b class='flag-5'>鴻蒙</b>NEXT<b class='flag-5'>系統(tǒng)</b>