劍指offer 單例模式

2021-10-02 23:35:15 字數 492 閱讀 2561

單例模式分為懶漢式和餓漢式。

所謂單例模式,就是構造器私有化,對外界提供唯一的乙份例項。

public class test 

}class person;//構造器私有化

public static person getinstance()

return p;

}}

public class test 

}class person;//構造器私有化

public static person getinstance()}}

return p;

}}

餓漢式就是在懶漢式的基礎上家裡同步鎖,假設有a,b兩條執行緒同時想要用person例項,a執行緒剛判斷完pnull,b就搶占了執行緒,然後走完全部程式建立了乙份例項,釋放鎖。然後a才搶到執行緒,上鎖後如果直接建立則浪費記憶體空間,所以他上鎖之後還得判斷pnull,這樣雙重判斷才能保證執行緒安全。

《劍指offer》系列 單例模式

永遠年輕,永遠熱淚盈眶。寫乙個單例模式 單例模式有多種寫法,以下整理了六種寫法,你都學會了嗎?public class test01 public singleton1 getinstance 懶漢式 非執行緒安全的 public static class singleton2 public sin...

劍指offer 題2 單例模式

懶漢式 第一次呼叫時載入 1.第一版 上來沒有想很多,直接敲起,使用synchronized保證執行緒安全,如下 public class single 使用synchronized保證安全 public static synchronized single getsingle return ins...

劍指offer 2 單例模式

實現乙個單例模式 實現單例模式的關鍵在於 將建構函式設定為private,或是protected 建立乙個靜態函式,呼叫建構函式。使用乙個靜態成員變數儲存單例物件 因為只能在堆上分配記憶體,因此需要乙個函式顯式的呼叫析構函式 class singleton return obj singleton ...