女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

OpenHarmony語言基礎類庫【@ohos.taskpool(啟動任務池)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-24 17:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

任務池(taskpool)作用是為應用程序提供一個多線程的運行環(huán)境,降低整體資源的消耗、提高系統(tǒng)的整體性能,且您無需關心線程實例的生命周期。您可以使用任務池API創(chuàng)建后臺任務(Task),并對所創(chuàng)建的任務進行如任務執(zhí)行、任務取消的操作。理論上您可以使用任務池API創(chuàng)建數(shù)量不受限制的任務,但是出于內(nèi)存因素不建議您這樣做。此外,不建議您在任務中執(zhí)行阻塞操作,特別是無限期阻塞操作,長時間的阻塞操作占據(jù)工作線程,可能會阻塞其他任務調(diào)度,影響您的應用性能。

您所創(chuàng)建的同一優(yōu)先級任務的執(zhí)行順序可以由您決定,任務真實執(zhí)行的順序與您調(diào)用任務池API提供的任務執(zhí)行接口順序一致。任務默認優(yōu)先級是MEDIUM。(任務優(yōu)先級機制暫未支持)

當同一時間待執(zhí)行的任務數(shù)量大于任務池工作線程數(shù)量,任務池會根據(jù)負載均衡機制進行擴容,增加工作線程數(shù)量,減少整體等待時長。同樣,當執(zhí)行的任務數(shù)量減少,工作線程數(shù)量大于執(zhí)行任務數(shù)量,部分工作線程處于空閑狀態(tài),任務池會根據(jù)負載均衡機制進行縮容,減少工作線程數(shù)量。(負載均衡機制暫未支持)

任務池API以數(shù)字形式返回錯誤碼。有關各個錯誤碼的更多信息,請參閱文檔 鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

說明:
本模塊首批接口從API version 9 開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

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

HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
import taskpool from '@ohos.taskpool';

taskpool.execute

execute(func: Function, ...args: unknown[]): Promise

將待執(zhí)行的函數(shù)放入taskpool內(nèi)部任務隊列等待,等待分發(fā)到工作線程執(zhí)行。當前執(zhí)行模式不可取消任務。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
funcFunction執(zhí)行的邏輯需要傳入函數(shù),支持的函數(shù)返回值類型請查[序列化支持類型]。
argsunknown[]執(zhí)行邏輯的函數(shù)所需要的參數(shù),支持的參數(shù)類型請查[序列化支持類型]。默認值為undefined。

返回值:

類型說明
Promiseexecute是異步方法,返回Promise對象。

錯誤碼:

以下錯誤碼的詳細介紹請參見[語言基礎類庫錯誤碼]。

錯誤碼ID錯誤信息
10200003Worker initialization failure.
10200006Serializing an uncaught exception failed.
10200014The function is not mark as concurrent.

示例:

@Concurrent
function printArgs(args) {
    console.log("printArgs: " + args);
    return args;
}

async function taskpoolExecute() {
  let value = await taskpool.execute(printArgs, 100);
  console.log("taskpool result: " + value);
}

taskpoolExecute();

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Release/zh-cn/application-dev/reference/apis/js-apis-taskpool.md#taskpoolexecute-1)taskpool.execute

execute(task: Task, priority?: Priority): Promise

將創(chuàng)建好的任務放入taskpool內(nèi)部任務隊列等待,等待分發(fā)到工作線程執(zhí)行。當前執(zhí)行模式可嘗試調(diào)用cancel進行任務取消。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
task[Task]需要在任務池中執(zhí)行的任務。
priority[Priority]等待執(zhí)行的任務的優(yōu)先級(暫未支持)。

返回值:

類型說明
Promiseexecute是異步方法,返回Promise對象。

錯誤碼:

以下錯誤碼的詳細介紹請參見[語言基礎類庫錯誤碼]。

錯誤碼ID錯誤信息
10200003Worker initialization failure.
10200006Serializing an uncaught exception failed.
10200014The function is not mark as concurrent.

示例:

@Concurrent
function printArgs(args) {
    console.log("printArgs: " + args);
    return args;
}

async function taskpoolExecute() {
  let task = new taskpool.Task(printArgs, 100);
  let value = await taskpool.execute(task);
  console.log("taskpool result: " + value);
}

taskpoolExecute();

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Release/zh-cn/application-dev/reference/apis/js-apis-taskpool.md#taskpoolcancel)taskpool.cancel

cancel(task: Task): void

取消任務池中的任務。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
task[Task]需要取消執(zhí)行的任務。

錯誤碼:

以下錯誤碼的詳細介紹請參見[語言基礎類庫錯誤碼]。

錯誤碼ID錯誤信息
10200015If the task is not exist.
10200016If the task is running.

任務取消成功示例:

@Concurrent
function printArgs(args) {
    console.log("printArgs: " + args);
    return args;
}

async function taskpoolCancel() {
  let task = new taskpool.Task(printArgs, 100);
  taskpool.execute(task);
  try {
    taskpool.cancel(task);
  } catch (e) {
    console.log("taskpool.cancel occur error:" + e);
  }
}

taskpoolCancel();

已執(zhí)行的任務取消失敗示例:

@Concurrent
function printArgs(args) {
    console.log("printArgs: " + args);
    return args;
}

async function taskpoolCancel() {
  let task = new taskpool.Task(printArgs, 100);
  let value = taskpool.execute(task);
  let start = new Date().getTime();
  while (new Date().getTime() - start < 1000) { // 延時1s,確保任務已執(zhí)行
    continue;
  }

  try {
    taskpool.cancel(task); //任務已執(zhí)行,取消失敗
  } catch (e) {
    console.log("taskpool.cancel occur error:" + e);
  }
}

taskpoolCancel();

正在執(zhí)行的任務取消失敗示例:

@Concurrent
function printArgs(args) {
    console.log("printArgs: " + args);
    return args;
}

async function taskpoolCancel() {
  let task1 = new taskpool.Task(printArgs, 100);
  let task2 = new taskpool.Task(printArgs, 200);
  let task3 = new taskpool.Task(printArgs, 300);
  let task4 = new taskpool.Task(printArgs, 400);
  let task5 = new taskpool.Task(printArgs, 500);
  let task6 = new taskpool.Task(printArgs, 600);

  let res1 = taskpool.execute(task1);
  let res2 = taskpool.execute(task2);
  let res3 = taskpool.execute(task3);
  let res4 = taskpool.execute(task4);
  let res5 = taskpool.execute(task5);
  let res6 = taskpool.execute(task6);
  try {
    taskpool.cancel(task1); // task1任務正在執(zhí)行,取消失敗
  } catch (e) {
    console.log("taskpool.cancel occur error:" + e);
  }
}

taskpoolCancel();

Priority

表示所創(chuàng)建任務(Task)的優(yōu)先級。(暫未支持)

系統(tǒng)能力: SystemCapability.Utils.Lang

名稱說明
HIGH0任務為高優(yōu)先級。
MEDIUM1任務為中優(yōu)先級。
LOW2任務為低優(yōu)先級。

Task

表示任務。使用以下方法前,需要先構造Task。

constructor

constructor(func: Function, ...args: unknown[])

Task的構造函數(shù)。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
funcFunction任務執(zhí)行需要傳入函數(shù),支持的函數(shù)返回值類型請查[序列化支持類型]。
argsunknown[]任務執(zhí)行傳入函數(shù)的參數(shù),支持的參數(shù)類型請查[序列化支持類型]。默認值為undefined。

錯誤碼:

以下錯誤碼的詳細介紹請參見[語言基礎類庫錯誤碼]。

錯誤碼ID錯誤信息
10200014The function is not mark as concurrent.

示例:

@Concurrent
function printArgs(args) {
    console.log("printArgs: " + args);
    return args;
}

let task = new taskpool.Task(printArgs, "this is my first Task");

屬性

系統(tǒng)能力: SystemCapability.Utils.Lang

名稱類型可讀可寫說明
functionFunction創(chuàng)建任務時需要傳入的函數(shù),支持的函數(shù)返回值類型請查[序列化支持類型]。
argumentsunknown[]創(chuàng)建任務傳入函數(shù)所需的參數(shù),支持的參數(shù)類型請查[序列化支持類型]。

其他說明

序列化支持類型

序列化支持類型包括:All Primitive Type(不包括symbol)、Date、String、RegExp、Array、Map、Set、Object、ArrayBuffer、TypedArray。

注意事項

  • 僅支持在Stage模型且module的compileMode為esmodule的project中使用taskpool api。確認module的compileMode方法:查看當前module的build-profile.json5,在buildOption中補充"compileMode": "esmodule"。
  • taskpool任務只支持引用入?yún)鬟f或者import的變量,不支持使用閉包變量,使用裝飾器@Concurrent進行攔截。
  • taskpool任務只支持普通函數(shù)或者async函數(shù),不支持類成員函數(shù)或者匿名函數(shù),使用裝飾器@Concurrent進行攔截。
  • 裝飾器@Concurrent僅支持在ets文件使用。

簡單使用

示例一

// 支持普通函數(shù)、引用入?yún)鬟f
@Concurrent
function printArgs(args) {
    console.log("printArgs: " + args);
    return args;
}

async function taskpoolExecute() {
  // taskpool.execute(task)
  let task = new taskpool.Task(printArgs, "create task, then execute");
  let val1 = await taskpool.execute(task);
  console.log("taskpool.execute(task) result: " + val1);

  // taskpool.execute(function)
  let val2 = await taskpool.execute(func, "execute task by func");
  console.log("taskpool.execute(function) result: " + val2);
}

taskpoolExecute();

示例二

// b.ets
export let c = 2000;
// 引用import變量
// a.ets(與b.ets位于同一目錄中)
import { c } from "./b";

@Concurrent
function printArgs(a) {
    console.log(a);
    console.log(c);
    return a;
}

async function taskpoolExecute() {
  // taskpool.execute(task)
  let task = new taskpool.Task(printArgs, "create task, then execute");
  let val1 = await taskpool.execute(task);
  console.log("taskpool.execute(task) result: " + val1);

  // taskpool.execute(function)
  let val2 = await taskpool.execute(printArgs, "execute task by func");
  console.log("taskpool.execute(function) result: " + val2);
}

taskpoolExecute();

示例三

// 支持async函數(shù)
@Concurrent
async function delayExcute() {
  let ret = await Promise.all([
    new Promise(resolve = > setTimeout(resolve, 1000, "resolved"))
  ]);
  return ret;
}

async function taskpoolExecute() {
  taskpool.execute(delayExcute).then((result) = > {
    console.log("TaskPoolTest task result: " + result);
  });
}

taskpoolExecute();

示例四

// c.ets
@Concurrent
function strSort(inPutArr) {
  let newArr = inPutArr.sort();
  return newArr;
}
export async function func1() {
    console.log("taskpoolTest start");
    let strArray = ['c test string', 'b test string', 'a test string'];
    let task = new taskpool.Task(strSort, strArray);
    let result = await taskpool.execute(task);
    console.log("func1 result:" + result);
}

export async function func2() {
    console.log("taskpoolTest2 start");
    let strArray = ['c test string', 'b test string', 'a test string'];
    taskpool.execute(strSort, strArray).then((result) = > {
        console.log("func2 result: " + result);
    });
}
// a.ets(與c.ets在同一目錄中)
import { taskpoolTest1, taskpoolTest2 } from "./c";

func1();
func2();

審核編輯 黃宇

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

    關注

    2

    文章

    1566

    瀏覽量

    63698
  • 鴻蒙
    +關注

    關注

    59

    文章

    2562

    瀏覽量

    43867
  • HarmonyOS
    +關注

    關注

    80

    文章

    2092

    瀏覽量

    32427
  • OpenHarmony
    +關注

    關注

    29

    文章

    3842

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    鴻蒙原生應用開發(fā)-ArkTS語言基礎多線程@Concurrent裝飾器校驗并發(fā)函數(shù)

    taskpool from \'@ohos.taskpool\'; @Concurrent function add(num1: number, num2: number): number
    發(fā)表于 03-18 10:30

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

    。 3.創(chuàng)建Task,通過execute()執(zhí)行任務,在當前任務結束后,會將直方圖處理結果同時返回。 結果數(shù)組匯總處理。 import taskpool from \'@ohos.taskpo
    發(fā)表于 03-19 14:14

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

    和filePath2的獲取方式請參見獲取應用文件路徑。 import taskpool from \'@ohos.taskpool\'; let filePath1 = ...; // 應用文件路徑 let
    發(fā)表于 03-21 14:57

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

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

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

    TaskPool運作機制 圖1 TaskPool運作機制示意圖 TaskPool支持開發(fā)者在主線程封裝任務拋給任務隊列,系統(tǒng)選擇合適的工作線
    發(fā)表于 03-26 15:25

    基于OpenHarmony標準系統(tǒng)的C++公共基礎案例:ThreadPoll

    1、程序簡介 該程序是基于OpenHarmony標準系統(tǒng)的C++公共基礎的線程處理:ThreadPoll。 本案例完成如下工作: 創(chuàng)建1個線程
    發(fā)表于 08-12 11:42

    同步任務開發(fā)指導

    ,例如無法單例創(chuàng)建的對象實現(xiàn)的方法。 使用TaskPool處理同步任務 當調(diào)度獨立的任務,或者一系列任務為靜態(tài)方法實現(xiàn),或者可以通過單例
    發(fā)表于 06-19 07:57

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

    語言基礎提供哪些功能?多線程并發(fā)如何實現(xiàn)?TaskPool任務)和Worker在實現(xiàn)和使
    發(fā)表于 10-18 16:36

    OpenHarmony C++公共基礎應用案例:Thread

    OpenHarmony C++公共基礎應用案例:Thread 1、程序簡介 該程序是基于OpenHarmony的C++公共基礎
    發(fā)表于 11-22 11:50

    基于openharmony移植的ohos拼圖支持

    項目介紹 項目名稱:PuzzleView 所屬系列:openharmony的第三方組件適配移植 功能:ohos拼圖支持 項目移植狀態(tài):主功能完成,由于ohos暫不支持,所以分享功能暫
    發(fā)表于 03-22 11:24 ?2次下載

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

    語言基礎提供哪些功能?多線程并發(fā)如何實現(xiàn)?TaskPool任務)和Worker在實現(xiàn)和使
    的頭像 發(fā)表于 10-18 16:20 ?857次閱讀
    HarmonyOS<b class='flag-5'>語言</b>基礎<b class='flag-5'>類</b><b class='flag-5'>庫</b>開發(fā)指南上線啦!

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

    TaskPool任務)和Worker的作用是為應用程序提供一個多線程的運行環(huán)境,用于處理耗時的計算任務或其他密集型任務。可以有效地避免這
    的頭像 發(fā)表于 03-26 22:09 ?934次閱讀
    鴻蒙APP開發(fā):【ArkTS<b class='flag-5'>類</b><b class='flag-5'>庫</b>多線程】<b class='flag-5'>TaskPool</b>和Worker的對比

    鴻蒙OpenHarmony大合集:【語言基礎

    本示例集合語言基礎的各個子模塊,展示了各個模塊的基礎功能
    的頭像 發(fā)表于 04-29 16:38 ?865次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>大合集:【<b class='flag-5'>語言</b>基礎<b class='flag-5'>類</b><b class='flag-5'>庫</b>】

    OpenHarmony標準系統(tǒng)C++公共基礎案例:HelloWorld

    1、程序簡介該程序是基于凌蒙派OpenHarmony-v3.2.1標準系統(tǒng)C++公共基礎的簡單案例:HelloWorld。主要講解C++公共基礎
    的頭像 發(fā)表于 08-13 08:23 ?814次閱讀
    <b class='flag-5'>OpenHarmony</b>標準系統(tǒng)C++公共基礎<b class='flag-5'>類</b><b class='flag-5'>庫</b>案例:HelloWorld

    基于OpenHarmony標準系統(tǒng)的C++公共基礎案例:ThreadPoll

    1、程序簡介該程序是基于OpenHarmony標準系統(tǒng)的C++公共基礎的線程處理:ThreadPoll。本案例完成如下工作:創(chuàng)建1個線程
    的頭像 發(fā)表于 02-10 18:09 ?318次閱讀
    基于<b class='flag-5'>OpenHarmony</b>標準系統(tǒng)的C++公共基礎<b class='flag-5'>類</b><b class='flag-5'>庫</b>案例:ThreadPoll
    主站蜘蛛池模板: 台湾省| 大城县| 黑龙江省| 石泉县| 玛沁县| 沂水县| 浠水县| 湾仔区| 资溪县| 阳朔县| 库尔勒市| 平潭县| 江油市| 太白县| 门头沟区| 双鸭山市| 延津县| 封开县| 叙永县| 米林县| 庆城县| 叶城县| 维西| 中西区| 临泽县| 高陵县| 平南县| 毕节市| 北碚区| 孝感市| 台北县| 青海省| 洛隆县| 毕节市| 鄱阳县| 深泽县| 天气| 洛南县| 夹江县| 郯城县| 客服|