单例模式-双重校验锁

314 阅读1分钟
//单例模式-双重校验锁
public class SingleTon3 {     
    private SingleTon3(){};    
    private static volatile SingleTon3 singleTon=null;

    public static SingleTon3 getInstance(){
        //第一次校验
        if(singleTon==null){  // 语句1
            synchronized(SingleTon3.class){  // 语句2
                //第二次校验
                if(singleTon==null){       // 语句3
                    singleTon=new SingleTon3();   // 语句4
                }
            }
        }
        return singleTon;
    }
}