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
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

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

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

分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS Promise & taskpool使用问题
140浏览 • 1回复 待解决
HarmonyOS 关于ColorFilter问题
182浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
282浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
171浏览 • 1回复 待解决
HarmonyOS关于多线程问题
292浏览 • 1回复 待解决
HarmonyOS关于API使用问题
242浏览 • 1回复 待解决
HarmonyOS 关于Navigation组件问题
269浏览 • 1回复 待解决
HarmonyOS 关于Web调试问题
33浏览 • 1回复 待解决
HarmonyOS关于navigation问题
329浏览 • 1回复 待解决
HarmonyOS 关于OH_AudioRenderer问题
250浏览 • 1回复 待解决
HarmonyOS 关于代理提醒设置问题
295浏览 • 1回复 待解决
HarmonyOS关于异步Promise使用问题
293浏览 • 1回复 待解决
HarmonyOS 关于代理提醒数量问题
244浏览 • 1回复 待解决
HarmonyOS 关于Map语法问题
75浏览 • 1回复 待解决
HarmonyOS关于TS转ArkTS语法问题
279浏览 • 1回复 待解决
HarmonyOS关于下载到缓存目录问题
328浏览 • 1回复 待解决
HarmonyOS 关于Grid组件拖拽排序问题
226浏览 • 0回复 待解决
HarmonyOS 关于软键盘相关问题
295浏览 • 0回复 待解决
HarmonyOS关于蓝牙无权限问题
653浏览 • 1回复 待解决
HarmonyOS关于使用fs.copyfile问题
341浏览 • 1回复 待解决
HarmonyOS 关于router.back问题咨询
311浏览 • 1回复 待解决
taskpool 使用问题,有人知道吗?
778浏览 • 1回复 待解决