在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。
装饰器说明
@Concurrent并发装饰器 | 说明 |
---|---|
装饰器参数 | 无。 |
使用场景 | 仅支持在Stage模型的工程中使用。 |
装饰的函数类型 | 允许标注async函数或普通函数。禁止标注generator、箭头函数、method。不支持类成员函数或者匿名函数。 |
装饰的函数内的变量类型 | 允许使用local变量、入参和通过import引入的变量。禁止使用闭包变量。 |
装饰器使用示例
鸿蒙NEXT学习文档+mau123789是v喔1
import taskpool from '@ohos.taskpool';
@Concurrent
function add(num1: number, num2: number): number {
return num1 + num2;
}
async function ConcurrentFunc(): Promise< void > {
try {
let task: taskpool.Task = new taskpool.Task(add, 1, 2);
console.info("taskpool res is: " + await taskpool.execute(task));
} catch (e) {
console.error("taskpool execute error is: " + e);
}
}
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() = > {
ConcurrentFunc();
})
}
.width('100%')
}
.height('100%')
}
}
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
多线程
+关注
关注
0文章
278浏览量
19971 -
鸿蒙
+关注
关注
57文章
2355浏览量
42868 -
鸿蒙OS
+关注
关注
0文章
188浏览量
4406
发布评论请先 登录
相关推荐
鸿蒙OS开发实例:【ArkTS类库多线程CPU密集型任务TaskPool】
CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。
基于多线程并发
鸿蒙原生应用开发-ArkTS语言基础类库概述
ArkTS语言基础类库是HarmonyOS系统上为应用开发者提供的常用基础能力,主要包含能力如下图所示。
1.提供异步并发和
发表于 03-05 15:42
鸿蒙原生应用开发-ArkTS语言基础类库多线程@Concurrent装饰器校验并发函数
在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰
发表于 03-18 10:30
鸿蒙原生应用开发-ArkTS语言基础类库多线程CPU密集型任务TaskPool
CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。
基于多线程并发
发表于 03-19 14:14
鸿蒙原生应用开发-ArkTS语言基础类库多线程I/O密集型任务开发
filePath2 = ...;
// 使用TaskPool执行包含密集I/O的并发函数
// 数组较大时,I/O密集型任务任务分发也会抢占主线程,需要使用多线程能力
发表于 03-21 14:57
鸿蒙原生应用开发-ArkTS语言基础类库多线程并发概述
的一系列复杂偶发的问题,同时并发度也相对较高,因此得到了广泛的支持和使用,也是当前ArkTS语言选择的并发模型。
由于Actor模型的内存隔离特性,所以需要进行跨线程的数据序列化传输。
发表于 03-22 15:40
鸿蒙原生应用开发-ArkTS语言基础类库多线程TaskPool和Worker的对比(三)
一、TaskPool注意事项
实现任务的函数需要使用装饰器@Concurrent标注,且仅支持在.ets文件中使用。
实现任务的函数入参需满
发表于 03-27 16:26
鸿蒙原生应用开发-ArkTS语言基础类库多线程并发概述
的一系列复杂偶发的问题,同时并发度也相对较高,因此得到了广泛的支持和使用,也是当前ArkTS语言选择的并发模型。
由于Actor模型的内存隔离特性,所以需要进行跨线程的数据序列化传输。
发表于 03-28 14:35
HarmonyOS使用多线程并发能力开发
代表,不需要开发者去面对锁带来的一系列复杂偶发的问题,同时并发度也相对较高,因此得到了广泛的支持和使用,也是当前ArkTS语言选择的并发模型。
由于Actor模型的内存隔离特性,所以需
发表于 09-25 15:23
HarmonyOS语言基础类库开发指南上线啦!
语言基础类库提供哪些功能?多线程并发如何实现?TaskPool(任务池)和Worker在实现和使用场景上有何不同?
针对开发者关注的
发表于 10-18 16:36
mfc多线程编程实例
(图形用户界面)应用程序的开发。在这篇文章中,我们将重点介绍MFC中的多线程编程。 多线程编程在软件开发中非常重要,它可以实现程序的并发执行
鸿蒙OS开发实例:【ArkTS类库多线程I/O密集型任务开发】
使用异步并发可以解决单次I/O任务阻塞的问题,但是如果遇到I/O密集型任务,同样会阻塞线程中其它任务的执行,这时需要使用多线程并发能力来进行解决。
I/O密集型任务的性能重点通常
评论