HarmonyOS ArkTS线程安全问题

当前是这样实现的:

static getInstance(): myData 
{ 
  let manager: myData = AppStorage.get("myData") as myData; 
  if (!manager) { 
    AppStorage.setOrCreate("myData", new myData(); 
  } 
  return AppStorage.get("myData") as myData; 
}

但是看示例代码是这样写的:

// 获取交互类单例 
public static getInstance(): Advertising { 
  if (Advertising.instance == null) { 
    Advertising.instance = new Advertising(); 
  } 
  return Advertising.instance; 
}

链接:https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-ui-dynamic-operations-V5

想知道想示例代码这样实现会有线程不安全问题。

HarmonyOS
2024-08-27 11:43:02
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以参考下面代码:

export class ClassA { 
  testvalue: number = 1; 
  constructor() { 
  } 
  onRegister(){ 
    this.testvalue = 2; 
  } 
  setValue(value: number){ 
    this.testvalue = value; 
  } 
  getValue():number{ 
    return this.testvalue; 
  } 
} 
export default new ClassA();//这种导出实例的方式,引用的时候引用导出的这个实例,就不会出现多个实例的情况。

示例代码不会存在线程安全问题,ArkTS中线程是隔离的,如果想要使用共享内存可以使用sendable,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-sendable-V5

分享
微博
QQ
微信
回复
2024-08-27 17:28:27
相关问题
ArkTs线程方案如何保证线程安全
2559浏览 • 2回复 待解决
HarmonyOS napi 接口线程安全咨询
310浏览 • 1回复 待解决
HarmonyOS安全评估问题
11浏览 • 0回复 待解决
HarmonyOS数据安全问题
396浏览 • 1回复 待解决
是否有线程安全的容器类
1771浏览 • 1回复 待解决
HarmonyOS 用户首选项是线程安全的吗
301浏览 • 1回复 待解决
HarmonyOS线程线程切换问题
563浏览 • 1回复 待解决
HarmonyOS 线程切换问题
519浏览 • 1回复 待解决
HarmonyOS 线程相关问题
455浏览 • 1回复 待解决
Native rdb写入是否有线程安全管理
1859浏览 • 1回复 待解决
HarmonyOS emitter 线程切换问题
374浏览 • 1回复 待解决
如何在进行并发操作时保证线程安全
323浏览 • 1回复 待解决