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 关于taskpool怎么实现线程同步
1327浏览 • 1回复 待解决
HarmonyOS Promise & taskpool使用问题
1357浏览 • 1回复 待解决
HarmonyOS taskpool使用问题咨询
1306浏览 • 1回复 待解决
HarmonyOS taskpool线程池数量问题
1558浏览 • 1回复 待解决
HarmonyOS taskpool线程并发问题
1072浏览 • 1回复 待解决
HarmonyOS 关于customScan问题
1322浏览 • 1回复 待解决
HarmonyOS 关于URL问题
1270浏览 • 1回复 待解决
HarmonyOS 关于ColorFilter问题
2444浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
1672浏览 • 1回复 待解决
HarmonyOS TaskPool子线程单例问题
1410浏览 • 1回复 待解决
HarmonyOS 关于C API问题
1345浏览 • 1回复 待解决
HarmonyOS 关于Web调试问题
1653浏览 • 1回复 待解决
关于HarmonyOS app加固问题
1650浏览 • 1回复 待解决
HarmonyOS 关于actionsheet样式问题
1128浏览 • 1回复 待解决
HarmonyOS 关于video组件问题
1149浏览 • 1回复 待解决
HarmonyOS 关于Navigation组件问题
1722浏览 • 1回复 待解决
HarmonyOS关于API使用问题
1589浏览 • 1回复 待解决
HarmonyOS 关于获取context问题
1683浏览 • 1回复 待解决
HarmonyOS关于多线程问题
1413浏览 • 1回复 待解决
HarmonyOS 关于FIDO问题请教
1230浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
1685浏览 • 1回复 待解决
HarmonyOS 关于request下载问题
1130浏览 • 1回复 待解决
HarmonyOS 关于moveWindowTo单位问题
856浏览 • 1回复 待解决
HarmonyOS 关于PAG库问题
1332浏览 • 1回复 待解决
HarmonyOS 关于权限组问题
1095浏览 • 1回复 待解决