1. 程式人生 > >2.DCL單例模式

2.DCL單例模式

1.首先vlolatile是禁止指令進行重排優化的:

public class Singleton {
    private volatile static Singleton Instance;
    public static Singleton getInstance(){
        if(Instance == null){
            synchronized (Singleton.class){
                if(Instance==null){
                    Instance=new Singleton();
                }
            }
        }
        return Instance;
    }
    public static void main(String[] args){
            Singleton.getInstance();
    }
}

DCL單例模式如上所示:

進行反編譯過程如下所示:

未完待續