您好,登錄后才能下訂單哦!
雙重校驗(yàn)鎖實(shí)現(xiàn)單例模式:
public class Singleton {
//采用volatile修飾
private volatile static Singleton singleton;
//構(gòu)造方法私有化
private Singleton(){}
//雙重校驗(yàn)鎖
public static Singleton getInstance(){
//先判斷對象是否已經(jīng)實(shí)例過,沒有實(shí)例化過才進(jìn)入加鎖代碼
if(singleton == null){
//類對象加鎖
synchronized(Singleton.class){
//再次判斷
if (singleton == null){
singleton = new Singleton();
}
}
}
return singleton;
}
}
注意:singleton 采用 volatile 修飾是很有必要的,因?yàn)?singleton = new Singleton() 這句話可以分為三步:
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。