双重检查加锁单例:volatile,synchronized

2017-06-27  本文已影响0人  庞哈哈哈12138

public class Singleton_volatile {
    
 private volatile static Singleton_volatile instance=null;
 private Singleton_volatile(){
  
 }
 public static Singleton_volatile getInstance(){
  //先检查实例是否存在,如果不存在才进入下面的同步块
  if(instance==null){
   //同步块,线程安全的创建实例
   synchronized(Singleton_volatile.class){
    //再次检查实例是否存在,如果不存在才真正的创建实例
    if(instance==null){
     instance=new Singleton_volatile();
    }
   }
  }
  return instance;
 }
}
上一篇 下一篇

猜你喜欢

热点阅读