优化后的单例模式

/**  
 * 单例模式最优方案:优化后的懒汉式
 * 线程安全  并且效率高
 */
public class Single{
    // 定义一个私有构造方法
    private Single() {}
    //定义一个静态私有变量(不初始化,不使用final关键字,使用volatile保证了多线程访问时single变量的
    //可见性,避免了single初始化时其他变量属性还没赋值完时,被另外线程调用)
    private static volatile Single single;
    //定义一个共有的静态方法,返回该类型实例
    public static Single getInstance() {
        // 对象实例化时与否判断(不使用同步代码块,single不等于null时,直接返回对象,提高运行效率)
        if (single == null) {
            //同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,
            //不再重复被创建)
            synchronized (Single.class) {
                //未初始化,则初始single变量
                if (single == null) {
                    single = new Single();
                }
            }
        }
        return single;
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值