天天看點

JAVA設計模式之懶漢式

public class lazysingleton {//缺點,多線程并發的時候會失效,getminstance不同步,例子:一個線程在建立minstance時,還未建立完成,另一個線程通路minstance此時還是為空,又建立了一次

    private static lazysingleton minstance;

    private lazysingleton(){

    }

    public static lazysingleton getminstance(){

        if(minstance == null){

            minstance = new lazysingleton();

        }

        return minstance;

}

懶漢式進行了延遲加載,在調用getmintance方法時才會去判斷minstance是否為空,如果為空,再去進行執行個體的建立。。但是在多線程操作的時候,可能會建立多個minstance執行個體,比如在以下情況下:一個線程在建立minstance執行個體時,minstance執行個體還未建立完成,但是另外一個線程會去通路minstance發現此時minstance還是為空,這個時候該線程又會去再次建立一個minstance執行個體,最後會有多個minstance執行個體被建立,導緻資源的浪費。

更多免費技術資料可關注:annalin1203