懒汉式单例 线程不安全 -Java版

发布于 2020-04-16 14:35:39
关注者
0
被浏览
1170
1 个回答
  • 面试哥
    面试哥 2020-04-16
    为面试而生,有面试问题,就找面试哥。

    当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。

    public class Singleton {
        private static Singleton uniqueInstance;
        private Singleton (){}
    
        public static Singleton getInstance() {
         if (uniqueInstance == null) {
             uniqueInstance = new Singleton();
         }
         return uniqueInstance;
        }
    }
    

    这段代码简单明了,而且使用了懒加载模式,但是却存在致命的问题。当有多个线程并行调用 getInstance() 的时候,就会创建多个实例。也就是说在多线程下不能正常工作。

面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看