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线程方案如何保证线程安全
2420浏览 • 1回复 待解决
HarmonyOS napi 接口线程安全咨询
258浏览 • 1回复 待解决
是否有线程安全的容器类
1708浏览 • 1回复 待解决
HarmonyOS 用户首选项是线程安全的吗
238浏览 • 1回复 待解决
Native rdb写入是否有线程安全管理
1764浏览 • 1回复 待解决
HarmonyOS数据安全问题
302浏览 • 1回复 待解决
HarmonyOS线程线程切换问题
435浏览 • 1回复 待解决
HarmonyOS 线程相关问题
330浏览 • 1回复 待解决
HarmonyOS 线程切换问题
410浏览 • 1回复 待解决
如何在进行并发操作时保证线程安全
241浏览 • 1回复 待解决
HarmonyOS emitter 线程切换问题
289浏览 • 1回复 待解决
HarmonyOS ArkTS会不会支持多线程开发
2287浏览 • 2回复 待解决
HarmonyOS线程问题
354浏览 • 1回复 待解决
数据库连接池是线程安全的吗?
2177浏览 • 1回复 待解决
HarmonyOS 线程通信 事件循环问题
224浏览 • 1回复 待解决