HarmonyOS 应用开发之@Concurrent装饰器:声明并校验并发函数

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

在使用 TaskPool 时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。

说明:
从API version 9开始,该装饰器支持在ArkTS卡片中使用。

装饰器说明

@Concurrent并发装饰器 说明
装饰器参数 无。
使用场景 仅支持在Stage模型的工程中使用。
装饰的函数类型 允许标注async函数或普通函数。禁止标注generator、箭头函数、method。不支持类成员函数或者匿名函数。
装饰的函数内的变量类型 允许使用local变量、入参和通过import引入的变量。禁止使用闭包变量。
装饰的函数内的返回值类型 支持的类型请查 序列化支持类型。

说明:
并发函数中返回Promise的表现需关注,其中并发同步函数会处理返回该Promise并返回结果。

示例:

import taskpool from '@ohos.taskpool';

@Concurrent
function testPromise(args1: number, args2: number): Promise<number> {
  return new Promise<number>((testFuncA, testFuncB)=>{
    testFuncA(args1 + args2);
  });
}

@Concurrent
async function testPromise1(args1: number, args2: number): Promise<number> {
  return new Promise<number>((testFuncA, testFuncB)=>{
    testFuncA(args1 + args2);
  });
}

@Concurrent
async function testPromise2(args1: number, args2: number): Promise<number> {
  return await new Promise<number>((testFuncA, testFuncB)=>{
    testFuncA(args1 + args2)
  });
}

@Concurrent
function testPromise3() {
  return Promise.resolve(1);
}

@Concurrent
async function testPromise4(): Promise<number> {
  return 1;
}

@Concurrent
async function testPromise5(): Promise<string>
HarmonyOS鸿蒙开发 应用开发常见问题总结(持续更新...) 鸿蒙开发 应用开发常见问题总结(持续更新…)在学习鸿蒙开发过程中,也是遇到了不少问题,在代码编写过程中,遇到了一些问题,由于是学习阶段,需要时刻记录一下。 阅读详情

相关推荐

鸿蒙(HarmonyOS)应用开发指南

鸿蒙应用开发框架是鸿蒙系统提供的一套开发工具和框架,用于帮助开发者快速构建鸿蒙应用。它提供了一系列的 API 和组件,使开发者可以方便地进行应用的开发、测试和发布。鸿蒙应用开发框架支持多种开发语言,包括 Java、C++、JavaScript、ArkTS 等,开发者可以根据自己的需求选择合适的开发语言进行开发。ArkTSHarmonyOS 优选的主力应用开发语言,在 TS 基础上发展而来。

m0_70749039的博客 1万+

鸿蒙「TaskPool|Worker」多线程并发使用详解,这一篇足够!

CPU密集型任务,说白了是计算型耗时任务; I/O密集型任务,说白了是读写型耗时任务; 官方文档重点介绍了这两种基于多线程并发机制处理任务类型,我们是要深度思考下的?!「很有意义」,是否已经包含且指明了我们使用「TaskPool/Worker」来解决项目问题的方案呢? 对Worker以及TaskPool的使用详解,个人准备以一种特别的角度来详述。从我个人初始接触及学习研究的视角,针对 `如何选用`、`如何创建`、`如何使用`、`注意事项`和`条件限制` 多个方面,全面剖析。

文化园 4679

HarmonyOS 应用开发@Concurrent装饰器:@Sendable装饰器声明校验Sendable类

在使用 TaskPool 时,执行的并发函数若需要传输类对象且使用该类的内部方法,该类需要使用此装饰器修饰,否则无法使用此对象内的方法。SendableClass有以下两种行为:支持SendableClass序列化。对象分配在各自的虚拟机内存空间,不存在竞争访问,不同线程可以同时读写。支持SendableClass在跨线程传递时的引用传递(暂不支持)。从API version 11开始,该装饰器支持在ArkTS卡片中使用。

maniuT的博客 1720

java concurrent 探秘

java concurrent 探秘(转) 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁...

MyKM 839

鸿蒙原生应用开发-ArkTS语言基础类库多线程@Concurrent装饰器校验并发函数

在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。本文参考引用HarmonyOS官方开发文档,基于API9。

weixin_69135651的博客 692

HarmonyOS 应用开发@Concurrent装饰器声明校验并发函数_harmonyos ts concurrent is not defined

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)**[外链图片转存中…(img-FPvqt0At-1712666718817)]

2401_83947105的博客 1261

HarmonyOS 应用开发@Concurrent装饰器声明校验并发函数_harmonyos ts concurrent is not defined(3)

并发异步方法中如果使用Promise,建议搭配await使用捕获Promise中可能发生的异常。并发函数中返回Promise的表现需关注,其中并发同步函数会处理返回该Promise返回结果。如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)**(img-NuRE2dTR-1712666625874)]

2401_83947105的博客 761

HarmonyOS 应用开发@Concurrent装饰器声明校验并发函数_harmonyos ts concurrent is not defined(5)

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)**[外链图片转存中…(img-F1VSv8PW-1712666687437)]

2401_83947105的博客 884

HarmonyOS 应用开发@Concurrent装饰器声明校验并发函数_harmonyos ts concurrent is not defined(1)

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)**[外链图片转存中…(img-gTZGWRsW-1712666563088)]

2401_83947105的博客 860

HarmonyOS 应用开发@Concurrent装饰器声明校验并发函数_harmonyos ts concurrent is not defined(2)

并发异步方法中如果使用Promise,建议搭配await使用捕获Promise中可能发生的异常。并发函数中返回Promise的表现需关注,其中并发同步函数会处理返回该Promise返回结果。如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)**(img-uNLI5IwC-1712666594505)]

2401_83947105的博客 741

HarmonyOS 应用开发@Concurrent装饰器声明校验并发函数_harmonyos ts concurrent is not defined(4)

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)**[外链图片转存中…(img-WdKLbEya-1712666656066)]

2401_83947105的博客 892

华为鸿蒙系统全景解读:从内核设计到生态落地的技术革命

分布式思维:理解设备虚拟化、服务原子化等概念多范式开发能力:掌握声明UI、响应式编程等新范式性能调优经验:熟悉跨设备资源调度策略学习路径建议阶段1:掌握ArkTS语言基础(2周)阶段2:理解分布式能力(3周)阶段3:实战复杂项目开发(6周)

我是 二川兄,对Web开发、GIS开发、3D模型、机器学习、面试技巧等方面都有一些涉猎~ 欢迎您加入技术交流圈!你可以在我的文章末尾找到我~ 7961

【粉丝福利社】鸿蒙HarmonyOS NEXT开发之路 卷1:ArkTS语言篇

在数字化浪潮的推动下,全球科技领域正经历着前所未有的变革。我国作为这一变革的积极参与者,不仅在多个科技前沿领域取得了显著成就,更在计算机操作系统这一核心技术领域孕育出了具有自主知识产权的创新成果—鸿蒙系统(HarmonyOS)。这一系统开发成功不仅是国人的骄傲,更是全球技术竞争中的一股新兴力量。鸿蒙系统的诞生,标志着我国在全球操作系统领域迈出了坚实的一步。凭借其独特的分布式架构、跨平台能力以及对开发者友好的设计理念,它为智能设备带来了全新的使用体验。

愚公智库 10万+

鸿蒙案例实践:智能家居控制面板的并发任务与UI交互设计

背景随着物联网(IoT)的发展,智能家居系统越来越普及,用户可以通过手机或平板等设备对家庭中的各种设备进行控制,如灯光、空调、窗帘等。为了让用户能够更加便捷地控制这些设备,要求开发一个智能家居控制面板应用,能够异步控制多台设备,实时反馈设备状态到用户界面。需求用户可以通过控制面板的按钮控制智能灯、空调和窗帘。设备的控制是异步的,避免阻塞主线程影响用户体验。每个设备的状态(开启、关闭)应及时反馈到 UI 界面上。界面交互应简洁流畅,具有良好的用户体验。

same4869的博客 1896

鸿蒙开发实践案例分析——@Concurrent装饰器声明校验并发函数

并发异步方法中如果使用Promise,建议搭配await使用捕获Promise中可能发生的异常。并发函数中返回Promise的表现需关注,其中并发同步函数会处理返回该Promise返回结果。在使用 TaskPool 时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。

2501_91726491的博客 531

HarmonyOS:多线程并发-TaskPool

TaskPool注意事项 实现任务的函数需要使用@Concurrent装饰器标注,且仅支持在.ets文件中使用。 从API version 11开始,跨并发实例传递带方法的实例对象时,该类必须使用装饰器@Sendable装饰器标注,且仅支持在.ets文件中使用。 任务函数在TaskPool工作线程的执行耗时不能超过3分钟(不包含Promise和async/await异步调用的耗时,例如网络下载、文件读写等I/O任务的耗时),否则会被强制退出。

ChinaDragon10的博客 2100

鸿蒙应用开发@Concurrent装饰器声明校验并发函数

在使用 TaskPool 时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。

duoduola888的博客 498

华为鸿蒙系统开发现状如何?

鸿蒙系统作为华为自研的操作系统,自发布以来一直备受关注。其背后有华为深厚的技术积累与研发实力,且国内市场有庞大的用户基数,这些因素都为其发展提供了有利条件。

weixin_48091641的博客 2083
上一篇: HarmonyOS 应用开发之TaskPool和Worker支持的序列化类型
下一篇: HarmonyOS 应用开发之@Concurrent装饰器:@Sendable装饰器:声明并校验Sendable类
OpenHarmony_小贾
博客等级 码龄3年 1万+粉丝 · 1181原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值