双重检测实现
/**
* 懒汉模式->双重同步锁单例模式
*/
public class SingletonExample5 {
private SingletonExample5() {
}
//volatile + 双重检测机制 -> 禁止指令重排序
private static volatile SingletonExample5 instance = null;
/**
* synchronized导致性能开销增加
*/
private static SingletonExample5 getInstance() {
if (null == instance) { //双重检测机制
synchronized (SingletonExample5.class) { //同步锁
if (null == instance) {
instance = new SingletonExample5();
}
}
}
return instance;
}
}/**
* 懒汉模式->双重同步锁单例模式
*/
public clas