HarmonyOS 关于taskpool的问题

我有个单例类是这样的:

export class MYHttpClient { 
  let isSyning = false; 
  private static instance: MYHttpClient; 
  private constructor() { 
  } 
  public static getInstance() { 
    if (!MYHttpClient.instance) { 
      MYHttpClient.instance = new MYHttpClient(); 
    } 
    return MYHttpClient.instance; 
  } 
}

当我在主线程将isSyning=true之后,再次调用taskpool来执行MYHttpClient里的方法,发现isSyning依然是false,经过跟踪,我们发现MYHttpClient.getInstance()在taskpool执行的时候,是被重新new了一个对象,不是我们想要打单例的效果,请问我们要如何实现单例呢?

HarmonyOS
2024-11-05 09:09:49
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

​taskpool和worker均不支持内存共享,对于单例场景,在tasktool中调用getInstance会重新走构造方法,创建不同的对象。在使用TaskPool进行子线程操作的时候,避免调用单例方法,否则在单例初始化方法中,主线程和子线程会创建不同的实例,导致对象不同,从而导致问题。

参考链接:​https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/taskpool-vs-worker-V5

分享
微博
QQ
微信
回复
2024-11-05 16:23:09
相关问题
HarmonyOS Promise & taskpool使用问题
195浏览 • 1回复 待解决
HarmonyOS 关于ColorFilter问题
259浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
350浏览 • 1回复 待解决
HarmonyOS 关于Web调试问题
103浏览 • 1回复 待解决
HarmonyOS 关于Navigation组件问题
323浏览 • 1回复 待解决
HarmonyOS 关于C API问题
87浏览 • 1回复 待解决
HarmonyOS关于API使用问题
288浏览 • 1回复 待解决
HarmonyOS关于多线程问题
342浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
219浏览 • 1回复 待解决
HarmonyOS关于navigation问题
383浏览 • 1回复 待解决
HarmonyOS 关于crash问题
98浏览 • 1回复 待解决
HarmonyOS 关于代理提醒数量问题
283浏览 • 1回复 待解决
HarmonyOS 关于OH_AudioRenderer问题
283浏览 • 1回复 待解决
HarmonyOS 关于代理提醒设置问题
351浏览 • 1回复 待解决
HarmonyOS关于异步Promise使用问题
339浏览 • 1回复 待解决
taskpool 使用问题,有人知道吗?
828浏览 • 1回复 待解决
HarmonyOS 关于Map语法问题
188浏览 • 1回复 待解决
HarmonyOS 关于router.back问题咨询
350浏览 • 1回复 待解决
HarmonyOS关于蓝牙无权限问题
821浏览 • 1回复 待解决
HarmonyOS关于使用fs.copyfile问题
392浏览 • 1回复 待解决
关于属性动画问题
9984浏览 • 3回复 待解决
HarmonyOS关于TS转ArkTS语法问题
302浏览 • 1回复 待解决
HarmonyOS 关于Grid组件拖拽排序问题
291浏览 • 0回复 待解决