阅读背景:

java通过双重检测或枚举类实现线程安全单例(懒汉模式)

来源:互联网 

双重检测实现

/**
 * 懒汉模式->双重同步锁单例模式
 */
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



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: