相信面向?qū)ο蟪绦騿T都對(duì)單例模式比較熟悉,而對(duì)于單例模式卻有著各種各樣的寫(xiě)法,今天我專(zhuān)門(mén)針對(duì)一種稱(chēng)為雙重加鎖的寫(xiě)法進(jìn)行分析。我們先來(lái)看下這種寫(xiě)法。

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開(kāi)發(fā),動(dòng)畫(huà)培訓(xùn)

/**
 * 單例雙重加鎖Demo
 * */public class DoubleCheckLock {   
    private static DoubleCheckLock instance ;    
    private DoubleCheckLock(){
        
    }    
    public static DoubleCheckLock getInstance(){        if(instance == null){            synchronized (DoubleCheckLock.class) {                if(instance == null)
                    instance = new DoubleCheckLock() ;
            }
        }        return instance;
    }
}

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開(kāi)發(fā),動(dòng)畫(huà)培訓(xùn)

  這種寫(xiě)法相信很多人都見(jiàn)過(guò),但是你認(rèn)為這種寫(xiě)法是正確的嗎?或者更準(zhǔn)確的來(lái)說(shuō),這種寫(xiě)法在并發(fā)的環(huán)境下是否還能表現(xiàn)出正確的行為呢。

  之所以有這種所謂的雙重加鎖,一方面是因?yàn)檠舆t初始化可以提高性能,另一方面通過(guò)使用內(nèi)置鎖sychronized來(lái)防止并發(fā),其原

網(wǎng)友評(píng)論