1. 程式人生 > >單例的實現方式

單例的實現方式

單例模式

單例模式的實現方式:

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

第一種實現方式:

技術分享圖片

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

第二種實現方式

技術分享圖片

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

第三種實現方式

技術分享圖片

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



單例的實現方式