// 线程安全的懒汉式单例
public class Singleton {
//使用volatile关键字防止重排序,因为 new Instance()是一个非原子操作,可能创建一个不完整的实例
private static volatile Singleton singleton;
private Singleton() {}
public static Singleton getSingleton() {
// Double-Check idiom
if (singleton == null) {
synchronized (Singleton.class) { // 1
// 只需在第一次创建实例时才同步
if (singleton == null) { // 2
singleton = new Singleton(); // 3
}
}
}
return singleton;
}
}
单例模式与双重检查(Double-Check idiom)
最新推荐文章于 2024-01-26 14:30:25 发布
本文深入解析了线程安全的懒汉式单例模式实现,通过使用volatile关键字和双重检查锁定(Double-Check Locking)来确保多线程环境下单例的正确创建。介绍了如何避免重复实例化,保持实例唯一性的同时提高性能。
1452

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



