首页 > 其他 > 详细

单例设计模式(Singleton)的优化

时间:2019-05-26 19:06:28      阅读:135      评论:0      收藏:0      [点我收藏+]

单例模式的优化

单例模式懒汉式写法,单例模式的优化有以下四个方面:

  1. 使用同步保证线程安全synchronized
  2. 使用volatile关键字:volatile关键字提醒编译器后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。
  3. 防止反射调用私有构造方法
  4. 让单例序列化安全

代码实现

import java.io.Serializable;

public class Singleton implements Serializable {
    //加上volatile关键字保证变量的一致性
    private volatile static Singleton singleton = null;

    private Singleton() {
        if (singleton != null) {
            throw new RuntimeException("此类为单例模式,已经被实例化");
        }
    }

    public static Singleton getInstance() {
        //外层判断是防止已经new过了
        if (singleton == null) {
            //加上synchronized关键字,保证线程安全
            synchronized (Singleton.class) {
                if (singleton == null) {
                    singleton = new Singleton();
                }
            }
        }
        return singleton;
    }
}

单例设计模式(Singleton)的优化

原文:https://www.cnblogs.com/zxfei/p/10926775.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!