springboot接收请求初始化对象问题

发布于 2022-09-13 01:10:55 字数 65 浏览 20 评论 0

image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何以心动 2022-09-20 01:10:55

单例里加锁了么……

没加锁就会出现你这种问题。

按你这个逻辑大概写一个伪代码:

class Singleton {
  private static Singleton instance;

  public static Singleton getInstance()
    if (instance == null) {
      synchronized (LOCKSOMETHING) { // 要有锁
        if (instance == null) {
          Singleton temp = new Singleton();
          // do something to init...
          // 注意这里不要直接给 instance 赋值
          // 因为按你的逻辑,实例化后不等于初始化结束
          // 如果你直接赋值,可能会导致另一个线程判断 instance == null 不成立,从而认为初始化已结束
          // 所以这里要等你真正初始化结束后再给 instance 赋值
          instance = temp;
        }
      } 
    }

    return instance;
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文