双检锁/双重校验锁(DCL,即 double-checked locking)
| JDK 版本 | JDK1.5 起 |
| 是否 Lazy 初始化 | 是 |
| 是否多线程安全 | 是 |
| 实现难度 | 较复杂 |
描述:这种方式采用双锁机制,安全且在多线程情况下能保持高性能。
getInstance() 的性能对应用程序很关键。
/**
*
* @version 1.0.0
* @date 2019\8\4 20:29
*/
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;
}
}
双重校验锁机制解析
本文深入探讨了双重校验锁(DCL)机制在Java中的应用,自JDK1.5版本开始支持,用于实现线程安全的懒汉式单例模式。通过双锁机制确保getInstance()方法在多线程环境下高效且安全地初始化实例。
1861

被折叠的 条评论
为什么被折叠?



