单例模式的双重检查锁

第一层检查是判断实例是否已经被创建
过了第一层检查后就进入synchronized,同步代码块,
在同步代码块中再次检查,防止有多个线程同时进入同步代码块。

实例变量需要用volatile修饰,这样多个线程才能看见

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


相关推荐

  1. 模式双重检查

    2024-04-12 15:24:03       15 阅读
  2. 模式——懒汉模式双重检测问题

    2024-04-12 15:24:03       34 阅读
  3. 模式双重效验懒汉实现方式

    2024-04-12 15:24:03       18 阅读
  4. 设计模式-模式双重检查

    2024-04-12 15:24:03       16 阅读
  5. 模式双重检查锁定是什么?

    2024-04-12 15:24:03       31 阅读
  6. 设计模式双重检查作用

    2024-04-12 15:24:03       7 阅读
  7. 模式模板

    2024-04-12 15:24:03       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 15:24:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 15:24:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 15:24:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 15:24:03       20 阅读

热门阅读

  1. Spring boot实现低代码量的Excel导入导出

    2024-04-12 15:24:03       18 阅读
  2. C++:new与delete

    2024-04-12 15:24:03       18 阅读
  3. 松散子序列(c++实现)

    2024-04-12 15:24:03       14 阅读
  4. docker 容器迁移

    2024-04-12 15:24:03       13 阅读
  5. 什么是高防IP,使用场景和具体实例

    2024-04-12 15:24:03       15 阅读
  6. 飞腾D2000/E2000 openEuler Embedded 用户使用手册

    2024-04-12 15:24:03       14 阅读
  7. 富格林:着重正规技巧阻挠上当

    2024-04-12 15:24:03       14 阅读