当前位置:   article > 正文

java实现线程安全的单例模式_java如何设计一个线程安全的单例?

java如何设计一个线程安全的单例?

下面是Java实现线程安全的单例模式的代码:

public class Singleton {
    private static volatile Singleton instance;
    
    private Singleton(){
        // 私有化构造方法
    }
    
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在这个实现中,我们使用了双重检查锁定来确保线程安全。在创建对象的时候,我们给单例类加锁来确保只有一个线程可以访问,同时还要将instance变量标识为volatile,这样可以避免出现指令重排序的问题。这个实现既能保证线程安全,又能保证性能。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/900274
推荐阅读
相关标签
  

闽ICP备14008679号