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

简介

在使用 TaskPool 时,执行的并发函数若需要传输类对象且使用该类的内部方法,该类需要使用此装饰器修饰,否则无法使用此对象内的方法。SendableClass有以下两种行为:

  • 支持SendableClass序列化。对象分配在各自的虚拟机内存空间,不存在竞争访问,不同线程可以同时读写。

  • 支持SendableClass在跨线程传递时的引用传递(暂不支持)。

说明:

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

当前该装饰器仅支持克隆拷贝,使用时需搭配 setCloneList,否则会抛异常。

基本概念

SendableClass:被@Sendable装饰器修饰的类为SendableClass。

装饰器说明

@Sendable类装饰器 说明
装饰器参数 无。
使用场景限制 仅支持在Stage模型的工程中使用。仅支持在.ets文件中使用。
装饰的类继承关系限制 SendableClass只能继承SendableClass,普通Class可以继承SendableClass。
装饰的对象内的属性类型限制 支持string、number、boolean、SendableClass。禁止使用闭包变量。不支持#定义私有属性,需用private。不支持计算属性。
装饰的对象内的属性的其他限制 成员属性必须显式初始化。成员属性不能跟问号和感叹号。
装饰的对象内的方法参数限制 允许使用local变量、入参和通过import引入的变量。禁止使用闭包变量。
Sendable Class的限制 不支持增加属性、不支持删除属性、允许修改属性,修改前后属性的类型必须一致、不支持修改方法。必须声明或定义在文件顶层,不能定义在函数内。
其他限制 导出SendableClass的文件,不能导出非SendableClass属性。只能标记class,不支持interface和enum。
适用场景 在TaskPool使用类方法或传输对象的数据量较大的场景中推荐使用该装饰器。

装饰器使用示例

ts 复制代码
@Sendable
class TaskpoolTestClass {
  desc: string = "sendable: this is TaskpoolTestClass ";
  taskNum: number = 5;
  printName() {
    console.info("sendable: TaskpoolTestClass desc is: " + this.desc);
  }
  get getTaskNum(): number {
    return this.taskNum;
  }
}

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ......

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ......

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ......

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题

2.性能优化方向

3.架构方向

4.鸿蒙开发系统底层方向

5.鸿蒙音视频开发方向

6.鸿蒙车载开发方向

7.鸿蒙南向开发方向

相关推荐
nashane15 小时前
HarmonyOS 6学习:AI攻略长截图“防抖”与像素级拼接术
学习·华为·harmonyos
想你依然心痛17 小时前
HarmonyOS 6(API 23)实战:基于悬浮导航、沉浸光感与HMAF的“代码哨兵“——AI智能体代码安全审计平台
人工智能·安全·harmonyos·智能体
轻口味18 小时前
HarmonyOS 6.1 全栈实战录 - 09 极光底座:ArkWeb 6.1 性能、安全与视觉插帧全特性深度实战
pytorch·安全·harmonyos
Ww.xh18 小时前
鸿蒙Web组件中Hash路由传登录态方案
前端·哈希算法·harmonyos
nashane18 小时前
HarmonyOS 6学习:Canvas性能优化与长截图流畅实现实战
学习·性能优化·harmonyos
轻口味19 小时前
HarmonyOS 6.1 全栈实战录 - 13 流量增长新引擎:全场景归因与 App Linking 链接深度开发实战
pytorch·深度学习·harmonyos
轻口味1 天前
HarmonyOS 6.1 全栈实战录 - 12 性能底座与包管理演进深度开发实战
华为·harmonyos
UXbot1 天前
支持移动端原型绘制的 AI 工具核心功能对比(2026):5 款主流平台能力横向评测
前端·低代码·ui·交互·原型模式·web app
云水一下1 天前
华为防火墙安全区域与NAT实战:基于eNSP的企业边界网完整部署
安全·华为·nat·下一代防火墙
小雨青年1 天前
鸿蒙 HarmonyOS 6 | Pura X Max 鸿蒙原生适配 06:GridRow 做卡片自适应布局
华为·harmonyos