SendableClass是基于Actor内存隔离并发模型的扩展,Sendable对象的内存是线程间共享的,但是仍然需要满足单线程无锁化运行。因此,要保证同一个Sendable实例不能多线程并发访问,开发者需要通过同步机制保证线程安全。Sendable对象需要满足一定的规格:成员属性为 Sendable类或者基础类型(string number boolean等)。成员属性必须显式初始化。成员函数不能使用闭包,只能使用入参或者this成员或者import导入的变量。只允许Sendable类继承Sendable类。@Sendable只能写在ArkTS(ets)文件中。不支持定义私有属性,要用private。导出Sendable类的文件,不能导出非Sendable属性。传输方式有如下两种: a.序列化传递:深拷贝到其他线程,非共享模式。 b.共享模式:可以跨线程引用传递,多线程可同时读写,开发者需要自行采用同步机制避免多线程竞争。参考链接多线程并发概述
SendableClass是基于Actor内存隔离并发模型的扩展,Sendable对象的内存是线程间共享的,但是仍然需要满足单线程无锁化运行。因此,要保证同一个Sendable实例不能多线程并发访问,开发者需要通过同步机制保证线程安全。
Sendable对象需要满足一定的规格:
a.序列化传递:深拷贝到其他线程,非共享模式。
b.共享模式:可以跨线程引用传递,多线程可同时读写,开发者需要自行采用同步机制避免多线程竞争。
参考链接
多线程并发概述