HarmonyOS TaskPool子线程单例问题

在主线程中已经创建的单例,但是在TaskPool的子线程中访问这个单例 还会重新创建, 用什么方法可以解决?

export class MPArticleDao1 {
  private static instance: MPArticleDao1;

  public static getInstance(): MPArticleDao1 {
    if (!MPArticleDao1.instance) {
      MPArticleDao1.instance = new MPArticleDao1();
    }
    return MPArticleDao1.instance;
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
HarmonyOS
2024-12-25 11:28:39
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

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

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

分享
微博
QQ
微信
回复
2024-12-25 14:12:17
相关问题
HarmonyOS 问题
1174浏览 • 1回复 待解决
HarmonyOS 关于问题
1320浏览 • 1回复 待解决
HarmonyOS 怎么实现线程安全的
1115浏览 • 1回复 待解决
TaskPool线程和主线程如何通信
3279浏览 • 1回复 待解决
HarmonyOS taskpool线程池数量问题
1169浏览 • 0回复 待解决
HarmonyOS taskpool线程并发问题
793浏览 • 1回复 待解决
HarmonyOS 模式不生效
1037浏览 • 1回复 待解决
HarmonyOS 对象如何实现
1372浏览 • 1回复 待解决
HarmonyOS 类被反复初始化的问题
900浏览 • 1回复 待解决
创建的换了页面后不生效问题
2961浏览 • 3回复 待解决
如何获取为undefined
1359浏览 • 1回复 待解决
HarmonyOS静态库是否是
745浏览 • 1回复 待解决
HarmonyOS navigation有模式吗
1006浏览 • 1回复 待解决
HarmonyOS taskpool.Task 线程安全问题
904浏览 • 1回复 待解决
HarmonyOS ArkTs-taskpool切换主线程问题
897浏览 • 1回复 待解决
HarmonyOS taskPool线程池task入参问题
1054浏览 • 1回复 待解决
HarmonyOS 关于native线程问题
596浏览 • 1回复 待解决