java_227_GOF23设计模式_单例模式__双重检查锁式_静态内部类模式_枚举式_UML_类图_练习1(双重检查锁式)

3.双重检测锁模式
这个模式看起来很好但是由于编译器优化问题和JVM底层不支持,使用时偶尔会出问题,
不建议使用;理解思路就可以,
在这里插入图片描述
package java_227_GOF23设计模式_单例模式__双重检查锁式_静态内部类模式_枚举式_UML_类图_练习;
/**

  • 双重检查锁式实现单例模式

  • 等于null就创建 否则就不用创建 ;只有第一次需要创建以后就不需要创建,提高效率

  • 问题:由于底层不支持,所以运行时底层在同步时顺序可能出问题
    */
    public class SingletonDemo03 {//单例演示
    private static SingletonDemo03 instance = null;//instance实例
    public static SingletonDemo03 getInstance(){//getinstance获得实例
    if(instancenull){
    SingletonDemo03 sc;
    synchronized (SingletonDemo03.class) {//synchronized同步的
    sc = instance;
    if(sc
    null){
    synchronized (SingletonDemo03.class){
    if(sc==null){
    sc = new SingletonDemo03();
    }
    }
    instance = sc;
    }
    }
    }
    return instance;
    }
    private SingletonDemo03(){

    }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值