java完整的單例代碼(切記)


// 這裏要加 volatile 防止指令重排
private static volatile A instance = null;

private A() {

}

public static AgetInstance() {
if (instance == null) {// 只有爲null,才進入同步鎖,減少多線程等待
synchronized (A.class) { // 這裏要加 鎖,防止多線程
if (instance == null) {// 這裏要加判斷,防止出現多個實例
instance = new A();
}
}
}
return instance;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章