單例模式與併發訪問的誤解
單例模式並不能解決併發訪問,static變量或單例模式可以解決單實例問題,單不能解決併發訪問問題,以爲這是兩個概念。
一、單例模式解決了以下問題:
1.如何保證多個對象中創建的實例是同一個
2.如何保證多線程中創建的實例是同一個
二、併發解決了以下問題:
多線程修改同一個實例時產生併發衝突
所以: 併發問題一般出現在單例模式中,非單例模式,即線程獨有的實例是不會發生併發衝突。
建議:單例對象中變量的訪問加鎖控制併發訪問
單例模式與併發訪問的誤解
單例模式並不能解決併發訪問,static變量或單例模式可以解決單實例問題,單不能解決併發訪問問題,以爲這是兩個概念。
一、單例模式解決了以下問題:
1.如何保證多個對象中創建的實例是同一個
2.如何保證多線程中創建的實例是同一個
二、併發解決了以下問題:
多線程修改同一個實例時產生併發衝突
所以: 併發問題一般出現在單例模式中,非單例模式,即線程獨有的實例是不會發生併發衝突。
建議:單例對象中變量的訪問加鎖控制併發訪問