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怎么实现线程同步
696浏览 • 1回复 待解决
HarmonyOS taskpool使用问题咨询
533浏览 • 1回复 待解决
HarmonyOS Promise & taskpool使用问题
598浏览 • 1回复 待解决
HarmonyOS taskpool线程并发问题
229浏览 • 1回复 待解决
HarmonyOS taskpool线程池数量问题
326浏览 • 0回复 待解决
HarmonyOS 关于ColorFilter问题
1115浏览 • 1回复 待解决
HarmonyOS 关于customScan问题
596浏览 • 1回复 待解决
HarmonyOS 关于URL问题
585浏览 • 1回复 待解决
HarmonyOS 关于moveWindowTo单位问题
218浏览 • 1回复 待解决
HarmonyOS 关于FIDO问题请教
482浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
943浏览 • 1回复 待解决
HarmonyOS关于多线程问题
742浏览 • 1回复 待解决
HarmonyOS 关于vp问题咨询
489浏览 • 1回复 待解决
HarmonyOS 关于获取context问题
502浏览 • 1回复 待解决
HarmonyOS 关于PAG库问题
628浏览 • 1回复 待解决
HarmonyOS 关于request下载问题
558浏览 • 1回复 待解决
HarmonyOS关于API使用问题
893浏览 • 1回复 待解决
HarmonyOS 关于权限组问题
380浏览 • 1回复 待解决
HarmonyOS TaskPool子线程单例问题
612浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
748浏览 • 1回复 待解决
HarmonyOS taskpool.Task 线程安全问题
364浏览 • 1回复 待解决
HarmonyOS 关于video组件问题
395浏览 • 1回复 待解决
关于HarmonyOS app加固问题
490浏览 • 1回复 待解决
HarmonyOS 关于Web调试问题
801浏览 • 1回复 待解决
HarmonyOS 关于actionsheet样式问题
448浏览 • 1回复 待解决