/** * @author lhj * @Description: 一个线程安全的单例模式 * @date 2019/6/17 19:32 */ public class SingletonSafe { //私有化构造方法 private SingletonSafe(){ } //私有化一个静态的单例对象 //volatile的目的是防止JVM指令重排导致线程不安全 //1、memoty = allocate() 分配对象的内存空间 //2、ctorInstance() 初始化对象 //3、instance = memory 设置instance只想刚分配的内存 //其中2和3有可能会发生重排 private volatile static SingletonSafe instance = null; public static SingletonSafe getInstance() { //添加双重检验,第一个检验是为了加快效率 if(instance == null) { synchronized (SingletonSafe.class){//同步锁 if(instance == null)//第二次检验 { instance = new SingletonSafe(); } } } return instance; } }
一个线程安全的单例模式
最新推荐文章于 2024-04-16 10:15:00 发布
