国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

一步一步教你做網(wǎng)站哪家公司建設(shè)網(wǎng)站好

一步一步教你做網(wǎng)站,哪家公司建設(shè)網(wǎng)站好,網(wǎng)絡(luò)營銷的理論基礎(chǔ)有哪些,專業(yè)品牌網(wǎng)站建設(shè)HarmonyOS App(JAVA)多線程任務(wù)分發(fā)器 打印時間,記錄到編輯框textfield信息顯示 同步分發(fā),異步分發(fā),異步延遲分發(fā),分組任務(wù)分發(fā),屏蔽任務(wù)分發(fā),多次任務(wù)分發(fā) 參考代碼注釋 場景介紹 如果應(yīng)用的業(yè)務(wù)邏輯比…

HarmonyOS App(JAVA)多線程任務(wù)分發(fā)器

打印時間,記錄到編輯框textfield信息顯示

同步分發(fā),異步分發(fā),異步延遲分發(fā),分組任務(wù)分發(fā),屏蔽任務(wù)分發(fā),多次任務(wù)分發(fā)

參考代碼注釋

場景介紹

如果應(yīng)用的業(yè)務(wù)邏輯比較復(fù)雜,可能需要創(chuàng)建多個線程來執(zhí)行多個任務(wù)。這種情況下,代碼復(fù)雜難以維護(hù),任務(wù)與線程的交互也會更加繁雜。要解決此問題,開發(fā)者可以使用“TaskDispatcher”來分發(fā)不同的任務(wù)。

接口說明

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

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

表1?線程優(yōu)先級介紹

優(yōu)先級

詳細(xì)描述

HIGH

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

DEFAULT

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

LOW

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

TaskDispatcher具有多種實現(xiàn),每種實現(xiàn)對應(yīng)不同的任務(wù)分發(fā)器。在分發(fā)任務(wù)時可以指定任務(wù)的優(yōu)先級,由同一個任務(wù)分發(fā)器分發(fā)出的任務(wù)具有相同的優(yōu)先級。系統(tǒng)提供的任務(wù)分發(fā)器有GlobalTaskDispatcher、ParallelTaskDispatcher、SerialTaskDispatcher 、SpecTaskDispatcher。

  • GlobalTaskDispatcher

    全局并發(fā)任務(wù)分發(fā)器,由Ability執(zhí)行g(shù)etGlobalTaskDispatcher()獲取。適用于任務(wù)之間沒有聯(lián)系的情況。一個應(yīng)用只有一個GlobalTaskDispatcher,它在程序結(jié)束時才被銷毀。

     
    1. TaskDispatcher globalTaskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);
  • ParallelTaskDispatcher

    并發(fā)任務(wù)分發(fā)器,由Ability執(zhí)行createParallelTaskDispatcher()創(chuàng)建并返回。與GlobalTaskDispatcher不同的是,ParallelTaskDispatcher不具有全局唯一性,可以創(chuàng)建多個。開發(fā)者在創(chuàng)建或銷毀dispatcher時,需要持有對應(yīng)的對象引用 。

     
    1. String dispatcherName = "parallelTaskDispatcher";
    2. TaskDispatcher parallelTaskDispatcher = createParallelTaskDispatcher(dispatcherName, TaskPriority.DEFAULT);
  • SerialTaskDispatcher

    串行任務(wù)分發(fā)器,由Ability執(zhí)行createSerialTaskDispatcher()創(chuàng)建并返回。由該分發(fā)器分發(fā)的所有的任務(wù)都是按順序執(zhí)行,但是執(zhí)行這些任務(wù)的線程并不是固定的。如果要執(zhí)行并行任務(wù),應(yīng)使用ParallelTaskDispatcher或者GlobalTaskDispatcher,而不是創(chuàng)建多個SerialTaskDispatcher。如果任務(wù)之間沒有依賴,應(yīng)使用GlobalTaskDispatcher來實現(xiàn)。它的創(chuàng)建和銷毀由開發(fā)者自己管理,開發(fā)者在使用期間需要持有該對象引用。

     
    1. String dispatcherName = "serialTaskDispatcher";
    2. TaskDispatcher serialTaskDispatcher = createSerialTaskDispatcher(dispatcherName, TaskPriority.DEFAULT);
  • SpecTaskDispatcher

    專有任務(wù)分發(fā)器,綁定到專有線程上的任務(wù)分發(fā)器。目前已有的專有線程為UI線程,通過UITaskDispatcher進(jìn)行任務(wù)分發(fā)。

    UITaskDispatcher:綁定到應(yīng)用主線程的專有任務(wù)分發(fā)器, 由Ability執(zhí)行g(shù)etUITaskDispatcher()創(chuàng)建并返回。 由該分發(fā)器分發(fā)的所有的任務(wù)都是在主線程上按順序執(zhí)行,它在應(yīng)用程序結(jié)束時被銷毀。

     
    1. TaskDispatcher uiTaskDispatcher = getUITaskDispatcher();
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:alignment="center"ohos:orientation="vertical"><Textohos:id="$+id:text_helloworld"ohos:height="match_content"ohos:width="match_content"ohos:background_element="$graphic:background_ability_main"ohos:layout_alignment="horizontal_center"ohos:text="$string:mainability_HelloWorld"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_tongbu"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB0BF647"ohos:layout_alignment="horizontal_center"ohos:text="同步分發(fā)"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_yibu"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB3D5DFC"ohos:layout_alignment="horizontal_center"ohos:text="異步分發(fā)"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_yibu_yanchi"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB0BF647"ohos:layout_alignment="horizontal_center"ohos:text="異步延遲分發(fā)"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_fenzhu_task"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB3D5DFC"ohos:layout_alignment="horizontal_center"ohos:text="分組任務(wù)分發(fā)"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_pingbi_task"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB0BF647"ohos:layout_alignment="horizontal_center"ohos:text="屏蔽任務(wù)分發(fā)"ohos:text_size="40vp"/><Buttonohos:id="$+id:btn_duoci_task"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#EB3D5DFC"ohos:layout_alignment="horizontal_center"ohos:text="多次任務(wù)分發(fā)"ohos:text_size="40vp"/><Textohos:id="$+id:text_label"ohos:height="match_content"ohos:width="match_content"ohos:background_element="$graphic:background_ability_main"ohos:layout_alignment="left"ohos:text="信息顯示:"ohos:multiple_lines="true"ohos:text_size="20vp"/><TextFieldohos:id="$+id:text_filed_info"ohos:height="300vp"ohos:background_element="#FC0A84EF"ohos:text="信息顯示區(qū)域"ohos:width="350vp"ohos:hint=""ohos:margin="2vp"ohos:text_size="20vp"/><Clockohos:id="$+id:clock"ohos:height="match_content"ohos:width="match_content"ohos:background_element="#FF80EF66"ohos:layout_alignment="left"ohos:text_size="20vp"/></DirectionalLayout>
package com.example.myapplication.slice;import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.*;
import ohos.app.dispatcher.Group;
import ohos.app.dispatcher.TaskDispatcher;
import ohos.app.dispatcher.task.TaskPriority;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;import java.util.function.Consumer;public class MainAbilitySlice extends AbilitySlice {static final HiLogLabel label = new HiLogLabel(HiLog.INFO,0x00101,"shanshui");TextField textField;Clock clock2;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);HiLog.info(label,  "hellocdtxw");HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);System.out.println("hellocdtxw");Button btn_tongbu = (Button) findComponentById(ResourceTable.Id_btn_tongbu);textField = (TextField) findComponentById(ResourceTable.Id_text_filed_info);clock2 = (Clock) findComponentById(ResourceTable.Id_clock);clock2.setFormatIn24HourMode("yyyy-MM-dd HH:mm:ss");Button btn_yibu = (Button) findComponentById(ResourceTable.Id_btn_yibu);Button btn_delay = (Button) findComponentById(ResourceTable.Id_btn_yibu_yanchi);Button btn_group = (Button ) findComponentById(ResourceTable.Id_btn_fenzhu_task);Button btn_pingbi = (Button) findComponentById(ResourceTable.Id_btn_pingbi_task);Button btn_more_time = (Button) findComponentById(ResourceTable.Id_btn_duoci_task);btn_more_time.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {MoreTimesTask();}});btn_delay.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {YibuDealyTask();}});btn_group.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {YibuGroupTask();}});btn_pingbi.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {PingBiTask();}});btn_yibu.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {YibuTask();}});btn_tongbu.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {HiLog.info(label,  "hellocdtxw");HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);System.out.println("hellocdtxw");TongBuTask();}});}/*同步分發(fā)任務(wù),多線程,阻塞模式,會卡主界面,不常用*/public void TongBuTask(){TaskDispatcher dispatcher =getGlobalTaskDispatcher(TaskPriority.DEFAULT);String time_str = clock2.getText();textField.append(time_str+":同步線程啟動\n");dispatcher.syncDispatch(new Runnable() {@Overridepublic void run() {try{//getUITaskDispatcher().syncDispatch(()->{// textField.append(clock2.getText()+":task1:"+Thread.currentThread().getName());//});Thread.sleep(1000);}catch (InterruptedException e){//getUITaskDispatcher().syncDispatch(()->{//  textField.append(clock2.getText()+"任務(wù)失敗");// });}}});dispatcher.syncDispatch(new Runnable() {@Overridepublic void run() {try{//getUITaskDispatcher().syncDispatch(()->{// textField.append(clock2.getText()+":task1:"+Thread.currentThread().getName());//});Thread.sleep(1000);}catch (InterruptedException e){//getUITaskDispatcher().syncDispatch(()->{//  textField.append(clock2.getText()+"任務(wù)失敗");// });}}});dispatcher.syncDispatch(new Runnable() {@Overridepublic void run() {try{//getUITaskDispatcher().syncDispatch(()->{// textField.append(clock2.getText()+":task1:"+Thread.currentThread().getName());//});Thread.sleep(1000);}catch (InterruptedException e){//getUITaskDispatcher().syncDispatch(()->{//  textField.append(clock2.getText()+"任務(wù)失敗");// });}}});}//異步模式,鴻蒙系統(tǒng)app多線程public  void YibuTask(){TaskDispatcher dispatcher =getGlobalTaskDispatcher(TaskPriority.DEFAULT);String time_str = clock2.getText();textField.append(time_str+":異步線程啟動\n");dispatcher.asyncDispatch(new Runnable() {@Overridepublic void run() {try{getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":task1:"+Thread.currentThread().getName()+"\n");});Thread.sleep(1000);}catch (InterruptedException e){getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+"任務(wù)失敗");});}}});dispatcher.asyncDispatch(new Runnable() {@Overridepublic void run() {try{getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":task2:"+Thread.currentThread().getName()+"\n");});Thread.sleep(1000);}catch (InterruptedException e){getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+"任務(wù)失敗");});}}});dispatcher.asyncDispatch(new Runnable() {@Overridepublic void run() {try{getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":task3:"+Thread.currentThread().getName()+"\n");});Thread.sleep(1000);}catch (InterruptedException e){getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+"任務(wù)失敗");});}}});}//異步延遲任務(wù)分發(fā)public  void YibuDealyTask(){TaskDispatcher dispatcher =getGlobalTaskDispatcher(TaskPriority.DEFAULT);String time_str = clock2.getText();dispatcher.delayDispatch(()-> {getUITaskDispatcher().asyncDispatch(()->{textField.append(time_str+":異步延遲任務(wù)分發(fā)線程啟動\n");});},1000);}//異步分組任務(wù)分發(fā)public  void YibuGroupTask(){TaskDispatcher dispatcher =getGlobalTaskDispatcher(TaskPriority.DEFAULT);String time_str = clock2.getText();Group group = dispatcher.createDispatchGroup();dispatcher.asyncGroupDispatch(group, new Runnable() {@Overridepublic void run() {HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}});dispatcher.asyncGroupDispatch(group, new Runnable() {@Overridepublic void run() {HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}});dispatcher.asyncGroupDispatch(group, new Runnable() {@Overridepublic void run() {HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}});}//屏蔽任務(wù)分發(fā)public void PingBiTask(){TaskDispatcher dispatcher =createParallelTaskDispatcher("Dispatcher",TaskPriority.DEFAULT);Group group = dispatcher.createDispatchGroup();dispatcher.asyncGroupDispatch(group,()->{try{Thread.sleep(1000);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}catch (InterruptedException ex){}});dispatcher.asyncGroupDispatch(group,()->{try{Thread.sleep(1000);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}catch (InterruptedException ex){}});dispatcher.asyncDispatchBarrier(()->{try{Thread.sleep(1000);getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":屏蔽任務(wù)分發(fā)線程啟動\n");});}catch (InterruptedException ex){}});dispatcher.asyncGroupDispatch(group,()->{try{Thread.sleep(1000);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}catch (InterruptedException ex){}});dispatcher.asyncGroupDispatch(group,()->{try{Thread.sleep(1000);HiLog.info(label,  "%{public}s World %d", "hellocdtxw", 3);}catch (InterruptedException ex){}});dispatcher.asyncDispatchBarrier(()->{try{Thread.sleep(1000);getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":屏蔽任務(wù)分發(fā)線程啟動\n");});}catch (InterruptedException ex){}});}public void MoreTimesTask(){getGlobalTaskDispatcher(TaskPriority.DEFAULT).applyDispatch(new Consumer<Long>() {@Overridepublic void accept(Long aLong) {getUITaskDispatcher().asyncDispatch(()->{textField.append(clock2.getText()+":多次任務(wù)分發(fā)線程啟動"+aLong.toString()+"\n");});}},10); //執(zhí)行10次}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}
}

?

?

http://m.aloenet.com.cn/news/31449.html

相關(guān)文章:

  • 做網(wǎng)站續(xù)費seo概念
  • 租電信服務(wù)器開網(wǎng)站磁力鏈bt磁力天堂
  • wordpress主題 dux1.2原版整站優(yōu)化排名
  • dk域名網(wǎng)站全搜網(wǎng)
  • 白菜網(wǎng)站建設(shè)如何優(yōu)化網(wǎng)站首頁
  • 公司網(wǎng)站建app互聯(lián)網(wǎng)營銷師怎么報名
  • 建設(shè)部一建注冊公示網(wǎng)站培訓(xùn)心得體會范文大全1000字
  • 怎么建設(shè)好一個外貿(mào)購物網(wǎng)站哪有惡意點擊軟件買的
  • 寧夏住房和城鄉(xiāng)建設(shè)廳網(wǎng)站執(zhí)業(yè)資格工具大全
  • 邢臺網(wǎng)站優(yōu)化建設(shè)站長查詢域名
  • 二級域名網(wǎng)站怎么投廣告百度seo優(yōu)化規(guī)則
  • 手機(jī)端網(wǎng)站建設(shè)公司經(jīng)典網(wǎng)絡(luò)營銷案例
  • 網(wǎng)站如何防止被復(fù)制百度打車客服電話
  • 高端網(wǎng)站設(shè)計費用電商網(wǎng)站建設(shè)公司
  • 深圳做公司網(wǎng)站推廣的廣州seo網(wǎng)站開發(fā)
  • 購物網(wǎng)站開發(fā)實戰(zhàn)有創(chuàng)意的網(wǎng)絡(luò)營銷案例
  • 海創(chuàng)網(wǎng)站建設(shè)電子商務(wù)推廣
  • 揚州公司做網(wǎng)站公司手游推廣平臺代理
  • 奢侈品商城網(wǎng)站建設(shè)方案泰安做網(wǎng)站公司
  • 貴陽市網(wǎng)站做的最好的識別關(guān)鍵詞軟件
  • asp網(wǎng)站亂碼百度推廣在線客服
  • 做文化建設(shè)的網(wǎng)站免費做網(wǎng)站怎么做網(wǎng)站鏈接
  • 全球速賣通靠譜嗎seo的關(guān)鍵詞無需
  • 專業(yè)電商網(wǎng)站建設(shè)百度快照客服
  • 做vr效果圖的網(wǎng)站seo優(yōu)化關(guān)鍵詞
  • 深圳企業(yè)網(wǎng)站制作公司美國今天剛剛發(fā)生的新聞
  • 價格優(yōu)化網(wǎng)站建設(shè)百度快速收錄方法
  • 哈爾濱php網(wǎng)站開發(fā)公司關(guān)鍵詞優(yōu)化的建議
  • 比優(yōu)化更好的詞是seo教程網(wǎng)站
  • 大連網(wǎng)站制作重慶百度推廣排名