public class Singleton {
// 使用 volatile 关键字确保多线程环境下的可见性和有序性
private static volatile Singleton instance = null;
// 私有构造函数,防止外部直接创建实例
private Singleton() {
}
// 公有静态方法,返回唯一实例
public static Singleton getInstance() {
// 第一重检查:减少不必要的同步
if (instance == null) {
// 同步块,对类对象加锁
synchronized (Singleton.class) {
// 第二重检查:防止多线程同时进入同步块时多次实例化
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
双重检验锁实现单例
最新推荐文章于 2024-10-01 09:29:45 发布
本文详细解释了如何在Java中使用volatile关键字和双重检查锁定(double-checkedlocking)机制实现Singleton模式,确保多线程环境下的线程安全和性能优化。
摘要由CSDN通过智能技术生成