單例模式volatile

java實現單例模式的方式有很多種,常見的有通過枚舉,餓漢式,懶漢式。懶漢式一般需要double check。 需要注意的事情,這種單例模式,單例對象聲明的時候需要加volatile關鍵字,確保在單例對象實例化的過程中不會發生重排序導致其他線程獲取到一個未完成初始化的對象,原理如下圖: 出現上圖這種情況:instance指針指向對象的指令發生在對象的初始化之前,那就會出現併發問題。
相關文章
相關標籤/搜索