我用CopyOnWriteArrayList
相當很多。當是ConcurrentHashMap的比喻的CopyOnWriteArrayList
- 線程執行大量的閱讀
- 線程執行一點點寫的
但是這是特別真實,我會用Collections.synchronizedList()
時
- 線程執行一點點閱讀
- 線程執行大量寫的
這是因爲根據CopyOnWriteArrayList Java Doc
ArrayList的一個線程安全的變體,其中所有可變操作 (添加,設置,等等)通過使 底層數組的新副本被實現。
這通常是成本太高,...
當談到ConcurrentHashMap
,我不知道我能仍然適用同樣的邏輯在選擇ConcurrentHashMap
過Collections.synchronizedMap()
?
ConcurrentHashMap
是否每次執行寫入操作都會創建底層數據結構的新副本?如果寫入操作多於讀取操作,它是否會比Collections.synchronizedMap執行得更糟?
http://stackoverflow.com/questions/11793067/how-does-concurrenthashmap-work-internally – NPE 2013-04-11 07:58:25