Sendable 序列化,对象分配在各自的虚拟机内存空间,存不存在竞争访问
@Sendable
export class Demo {
count:number = 0;
static demo:Demo = null;
static asyncLock: AsyncLock = new AsyncLock();
static async getInstace() {
return await Demo.asyncLock.lockAsync(()=>{
if (demo == null) {
demo = new Demo()
}
return demo;
})
}
async setCount(count: number) {
// 这里不用asyncLock.async的话,是不是就不会出现线程竞争?
// 我们的一个场景:网络库的全局拦截器中,不会访问类成员变量,也不希望产生线程竞争
await Demo.asyncLock.async(()=> {
this.count = count;
})
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS-Sequenceable(序列化)中,URI类型如何实现读取序列化对象
9464浏览 • 3回复 已解决
线程间JS对象通过序列化方式进行数据通信,是否存在性能问题
231浏览 • 1回复 待解决
真机运行,UDID不存在
4439浏览 • 1回复 待解决
把一个自定义类型的对象存储到文件中,自定义对象是否支持序列化,后者如何将一个自定义对象序列化
60浏览 • 1回复 待解决
自定义类如何实现序列化
283浏览 • 1回复 待解决
有谁知道 task 参数无法序列化
220浏览 • 1回复 待解决
通过 external 或者 wrap 关联了 native 对象的 object,序列化之后传输到其他线程使用
68浏览 • 1回复 待解决
如何实现文件不存在则创建文件
352浏览 • 1回复 待解决
使用web组件读取沙箱中不存在的文件app崩溃
37浏览 • 1回复 待解决
虚拟主机内存/CPU使用率过高如何解决?
3598浏览 • 1回复 待解决
router.pushUrl()当url不存在的时候,如何判断跳转失败
342浏览 • 1回复 待解决
IDE使用getContext(this)上的startabilityForResult方法,IDE提示不存在该方法
199浏览 • 1回复 待解决
跨设备迁移FA并传递序列化实体类无反应
3190浏览 • 3回复 待解决
请问我在hml页面用canvas插件时,DecEcoStudio为什么会报错,显示不存在这个插件?
3740浏览 • 1回复 待解决
除了用虚拟机软件自带的共享文件夹之外大家都用什么访问虚拟机ubuntu下的文件夹啊,能进行修改?
490浏览 • 1回复 待解决
通过PixelMap_CreatePixelMap创建的对象,内存在ArkTS侧和Native侧是否共享
451浏览 • 1回复 待解决
在虚拟机上运行不了鸿蒙项目
4743浏览 • 1回复 待解决
虚拟机vmware10 版本,安装centos7.0系统,开启虚拟机后,报错是怎么回事?
504浏览 • 1回复 待解决
虚拟机mysql连不上怎么回事?
648浏览 • 1回复 待解决
Har包内的单例对象在被外部module访问时,拿到是新的对象吗? Har包是内存隔离的吗?
82浏览 • 1回复 待解决
解码器的回调,Input Buffer,(OH_AVMemory *data)这块内存是如何分配的
82浏览 • 1回复 待解决
搭建环境出错了咋办,不想用虚拟机.....
9630浏览 • 2回复 待解决
ArkTS的对象数据与Native的对象数据如何绑定,相互持有对象数据时内存如何管理
235浏览 • 1回复 待解决
Xshell连接Virtualbox虚拟机里的centos连不上的问题有懂得吗?
464浏览 • 1回复 待解决
api version6 是不是只能在虚拟机用
4802浏览 • 2回复 已解决
支持SendableClass序列化。对象分配在各自的虚拟机内存空间,不存在竞争访问,不同线程可以同时读写。
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-sendable-0000001820999729
共享模式后存在竞争,如果不出现竞争,就不需要加lock。