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