單例的實現方式

單例模式的實現方式:安全

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

第一種實現方式:函數

 d1.png

 

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

第二種實現方式線程

 d2.png

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

 

第三種實現方式對象

 

 d3.png

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

相關文章
相關標籤/搜索