併發更新非同步HashMap
顯然會導致活鎖或其他數據損壞;爲了避免這種情況,應該使用併發版本或實現同步機制。Java:可以從HashMap中讀取狀態嗎?
可併發往HashMap.get()變化HashMap中的狀態的呼叫,像老調重彈?
更新:
有網友評論想知道這個問題的實際問題時,除了與挑剔的數據結構行爲理論的喜悅。
如果get()
不改變HashMap
的狀態(並且不能導致另一個reaseon的活鎖),那麼比單個線程可以提前創建一個HashMap,然後許多線程可以同時讀取它。如果併發讀取並不安全,我們需要ConcurrentHashMap
,每多線程訪問,無論其類型。
爲什麼這對你很重要? – vainolo
我心愛的數據結構的一般知識。 –
http://www.docjar.com/html/api/java/util/HashMap.java.html – amit