單例的實現方式

單例模式的實現方式:

單例模式要求程序中類只有一個對象。所以我們要將他的構造函數設爲private,並提供一個生成對象的靜態方法。

第一種實現方式:

 d1.png

 

由於第一種方式是線程不安全的。因爲當在if(instace==null)這句話中出現了中斷,期間,又有另一個進程B進入,創建了一個實例,而線程A重新獲取處理器,又創建了該類的另一個實例。

第二種實現方式

 d2.png

這裏直接在內部就生成個實例。

 

第三種實現方式

 

 d3.png

加了個synchronized的鎖!這樣就不可能會有多個線程同時進入new Singleton();



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章