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使用问题咨询
185浏览 • 1回复 待解决
HarmonyOS Promise & taskpool使用问题
295浏览 • 1回复 待解决
HarmonyOS 关于ColorFilter问题
430浏览 • 1回复 待解决
HarmonyOS关于多线程问题
468浏览 • 1回复 待解决
HarmonyOS关于API使用问题
396浏览 • 1回复 待解决
HarmonyOS 关于PAG库问题
72浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
383浏览 • 1回复 待解决
HarmonyOS 关于Navigation组件问题
469浏览 • 1回复 待解决
HarmonyOS 关于C API问题
194浏览 • 1回复 待解决
HarmonyOS 关于Web调试问题
228浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
481浏览 • 1回复 待解决
HarmonyOS 关于crash问题
386浏览 • 1回复 待解决
HarmonyOS 关于手势问题
40浏览 • 1回复 待解决
HarmonyOS关于navigation问题
558浏览 • 1回复 待解决
HarmonyOS 关于代理提醒设置问题
478浏览 • 1回复 待解决
HarmonyOS关于异步Promise使用问题
456浏览 • 1回复 待解决
HarmonyOS 关于OH_AudioRenderer问题
401浏览 • 1回复 待解决
HarmonyOS 关于Tabs只能居中问题
31浏览 • 1回复 待解决
HarmonyOS 关于Tabs组件TabContent问题
34浏览 • 1回复 待解决
HarmonyOS 关于代理提醒数量问题
424浏览 • 1回复 待解决
HarmonyOS 关于切换前后相机问题
50浏览 • 1回复 待解决
HarmonyOS 关于library代码混淆问题
81浏览 • 1回复 待解决
HarmonyOS 关于Map语法问题
399浏览 • 1回复 待解决
关于NavPathStack跳转问题
667浏览 • 1回复 待解决