diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 7abedf85ba40ec53b66c5df9afe64214dc63310e..e2c282b5d1d0f74e8c1f1d19d1bfe11f02f4ff48 100755 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -108,7 +108,7 @@ - [MissionListener](js-apis-inner-application-missionListener.md) - [MissionParameter](js-apis-inner-application-missionParameter.md) - [MissionSnapshot](js-apis-inner-application-missionSnapshot.md) - - [PermissionRequestResult](js-apis-inner-application-permissionRequestResult.md) + - [PermissionRequestResult](js-apis-permissionrequestresult.md) - [ProcessData](js-apis-inner-application-processData.md) - [ProcessRunningInfo](js-apis-inner-application-processRunningInfo.md) - [ProcessRunningInformation](js-apis-inner-application-processRunningInformation.md) @@ -343,6 +343,7 @@ - [@ohos.buffer (Buffer)](js-apis-buffer.md) - [@ohos.convertxml (xml转换JavaScript)](js-apis-convertxml.md) - [@ohos.process (获取进程相关的信息)](js-apis-process.md) + - [@ohos.taskpool (启动任务池)](js-apis-taskpool.md) - [@ohos.uri (URI字符串解析)](js-apis-uri.md) - [@ohos.url (URL字符串解析)](js-apis-url.md) - [@ohos.util (util工具函数)](js-apis-util.md) diff --git a/zh-cn/application-dev/reference/apis/js-apis-taskpool.md b/zh-cn/application-dev/reference/apis/js-apis-taskpool.md index b884113040dd455adbd1530957362e5040d24492..3add4b31bc7a98cb81029334d4e6ae31461a3f40 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-taskpool.md +++ b/zh-cn/application-dev/reference/apis/js-apis-taskpool.md @@ -2,102 +2,108 @@ taskpool作用是为应用程序提供一个多线程的运行环境,可以降低整体资源的消耗、提高系统的整体性能,且用户无需关心线程实例的生命周期。 +> **说明:**
+> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + ## 导入模块 ```js import taskpool from '@ohos.taskpool'; ``` -## 属性 +## Priority -**系统能力:** SystemCapability.Utils.Lang +表示所创建任务(Task)的优先级。(暂未支持) -| 名称 | 可读 | 可写 | 说明 | -| -------- | ---- | ---- | ---------------------------------------------------------- | -| taskpool | 是 | 是 | taskpool对象用于管理Task(任务),可以创建、执行和取消Task | +**系统能力:** SystemCapability.Utils.Lang -## Task +| 名称 | 值 | 说明 | +| -------- | -------- | -------- | +| HIGH | 0 | 任务为高优先级。 | +| MEDIUM | 1 | 任务为中优先级。 | +| LOW | 2 | 任务为低优先级。 | -使用以下方法前,需要先构造Task。 +## Task -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ---- | ---- | ---- | ---- | -------------------------------------------------------- | -| Task | Task | 是 | 是 | 待执行的任务。需要创建Task再放入taskpool(任务池)中执行 | +表示任务。使用以下方法前,需要先构造Task。 ### constructor constructor(func: Function, ...args: unknown[]) -Task构造函数 +Task的构造函数。 **系统能力:** SystemCapability.Utils.Lang **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | --------- | ---- | ---------------------------------------------- | -| func | Function | 是 | Task执行的逻辑需要传入Function | -| args | unknown[] | 否 | Task执行逻辑的Function如果需要入参,则需要传递 | - -**返回值:** - -| 类型 | 说明 | -| ---- | --------------------------------------------------- | -| Task | 执行Task构造函数生成的Task对象,失败则返回undefined | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | --------- | ---- | ------------------------ | +| func | Function | 是 | 任务执行需要传入函数。 | +| args | unknown[] | 否 | 任务执行传入函数的参数。 | **错误码:** -| 错误码 | 错误说明 | +以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 + +| 错误码ID | 错误信息 | | -------- | --------------------------------------- | -| 401 | the input parameters are invalid. | -| 10200014 | the function is not mark as concurrent. | +| 10200014 | The function is not mark as concurrent. | **示例:** ```js -import taskpool from '@ohos.taskpool'; - function func(args) { "use concurrent" console.log("func: " + args); return args; } -var task = new taskpool.Task(func, "this is first Task"); +let task = new taskpool.Task(func, "this is my first Task"); ``` +### 属性 + +**系统能力:** SystemCapability.Utils.Lang + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| --------- | --------- | ---- | ---- | ---------------------------- | +| function | Function | 是 | 是 | 创建任务时需要传入的函数。 | +| arguments | unknown[] | 是 | 是 | 创建任务传入函数所需的参数。 | +## taskpool.execute -## execute +execute(func: Function, ...args: unknown[]): Promise\ -execute(func: Function, ...args: unknown[]): Promise +任务池执行任务,需要传入待执行的函数和函数所需的参数,此执行模式不可取消任务。 **系统能力:** SystemCapability.Utils.Lang **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | --------- | ---- | ------------------------------------------ | -| func | Function | 是 | 执行的逻辑需要传入Function | -| args | unknown[] | 否 | 执行逻辑的Function如果需要入参,则需要传递 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | --------- | ---- | ---------------------------- | +| func | Function | 是 | 执行的逻辑需要传入函数。 | +| args | unknown[] | 否 | 执行逻辑的函数所需要的参数。 | **返回值:** -| 类型 | 说明 | -| ---------------- | ------------------------------ | -| Promise | execute是异步方法,返回Promise | +| 类型 | 说明 | +| ----------------- | ------------------------------------ | +| Promise\ | execute是异步方法,返回Promise对象。 | **错误码:** -| 错误码 | 错误说明 | -| -------- | --------------------------------------- | -| 401 | the input parameters are invalid. | -| 10200014 | the function is not mark as concurrent. | +以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 10200003 | Worker initialization failure. | +| 10200006 | Serializing an uncaught exception failed. | +| 10200014 | The function is not mark as concurrent. | **示例:** ```js -import taskpool from '@ohos.taskpool'; - function func(args) { "use concurrent" console.log("func: " + args); @@ -107,84 +113,81 @@ function func(args) { let value = taskpool.execute(func, 100); ``` +## taskpool.execute +execute(task: Task, priority?: Priority): Promise\ -execute(task: Task, priority?: Priority): Promise; +任务池执行任务,需要传入已创建的任务,此执行模式可取消任务。 **系统能力:** SystemCapability.Utils.Lang **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | -------------------------------- | -| task | Task | 是 | 需要在taskpool中执行的任务 | -| priority | Priority | 否 | 等待执行的Task的优先级,暂未实现 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ------------------------------------ | +| task | [Task](#task) | 是 | 需要在任务池中执行的任务。 | +| priority | [Priority](#priority) | 否 | 等待执行的任务的优先级(暂未支持)。 | **返回值:** | 类型 | 说明 | | ---------------- | ------------------------------ | -| Promise | execute是异步方法,返回Promise | +| Promise\ | execute是异步方法,返回Promise对象。 | **错误码:** -| 错误码 | 错误说明 | -| -------- | --------------------------------------- | -| 401 | the input parameters are invalid. | -| 10200014 | the function is not mark as concurrent. | +以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 10200003 | Worker initialization failure. | +| 10200006 | Serializing an uncaught exception failed. | +| 10200014 | The function is not mark as concurrent. | **示例:** ```js -import taskpool from '@ohos.taskpool'; - function func(args) { "use concurrent" console.log("func: " + args); return args; } -var task = new taskpool.Task(func, "this is first Task"); +let task = new taskpool.Task(func, "this is my first Task"); let value = taskpool.execute(task); ``` - - -## cancel +## taskpool.cancel cancel(task: Task): void +取消任务池中的任务。 + **系统能力:** SystemCapability.Utils.Lang **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ---- | ---- | ------------------------------ | -| task | Task | 是 | 需要在taskpool中取消执行的任务 | - -**返回值:** - -| 类型 | 说明 | -| ---- | -------- | -| void | 无返回值 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------- | ---- | -------------------- | +| task | [Task](#task) | 是 | 需要取消执行的任务。 | **错误码:** -| 错误码 | 错误信息 | -| -------- | --------------------- | -| 10200015 | the task is not exist | -| 10200016 | the task is running | +以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------- | +| 10200015 | If the task is not exist. | +| 10200016 | If the task is running. | **示例:** ```js -import taskpool from '@ohos.taskpool'; - function func(args) { "use concurrent" console.log("func: " + args); return args; } -var task = new taskpool.Task(func, "this is first Task"); +let task = new taskpool.Task(func, "this is first Task"); let value = taskpool.execute(task); taskpool.cancel(task); ``` \ No newline at end of file diff --git a/zh-cn/application-dev/reference/errorcodes/errorcode-utils.md b/zh-cn/application-dev/reference/errorcodes/errorcode-utils.md index 8423abf9d2543cd01fcbe33526bf47ad6cf5a71d..9dd0d2ccf0650a53e9cb60f9db1f538834b71590 100644 --- a/zh-cn/application-dev/reference/errorcodes/errorcode-utils.md +++ b/zh-cn/application-dev/reference/errorcodes/errorcode-utils.md @@ -219,3 +219,57 @@ Buffer的属性${propertyName}只读,不能进行设置。 **处理步骤** 不要对Buffer只读属性进行相关设置。 + +## 10200014 非Concurrent函数错误 + +**错误信息** + +The function is not mark as concurrent. + +**错误描述** + +Function未被标记为concurrent。 + +**可能原因** + +任务池执行的任务所需的函数未添加@Concurrent。 + +**处理步骤** + +检查任务池执行的任务所需的函数,并补上@Concurrent装饰器。 + +## 10200015 取消不存在的任务错误 + +**错误信息** + +The task is not exist when cancel it. + +**错误描述** + +取消一个不存在的任务。 + +**可能原因** + +取消任务时,该任务并不存在于任务池中。 + +**处理步骤** + +取消任务前,确保任务已被taskpool.execute调用进入任务池。 + +## 10200016 取消已执行的任务错误 + +**错误信息** + +The task is running when cancel it. + +**错误描述** + +取消已经执行的任务。 + +**可能原因** + +取消任务时,该任务已经处于执行状态。 + +**处理步骤** + +取消任务前,确保任务已被执行完毕。 \ No newline at end of file