java - 读少写多的条件下 ConcurrentHashMap 和 ReadWriteLock 的选择
PHPz
PHPz 2017-04-17 11:45:10
0
2
1187

场景是这样的:两个对象往一个 Map 里循环写入,另外一个对象偶尔读一次,写的频率比读的频率高很多。
希望实现的是读的时候暂停写入。
CocurrentHashMapReadWriteLock 各有什么优劣吗?

PHPz
PHPz

学习是最好的投资!

全部回覆(2)
阿神

應該用ConcurrentHashMap

ReadWriteLock適用於讀線程遠遠多於寫線程的情況下,而且一般是有寫的情況下讀會阻塞--這樣下來甚至不如一般的鎖。

小葫芦

從簡化程式設計模型來看,應該用 ConcurrentHashMap,用它直接產生 Map 的實例即可。而使用鎖機制,你需要自己管理這些鎖的狀態。

從效能來看,同樣應該用 ConcurrentHashMap,因為它內部已經對讀寫操作進行了分塊最佳化,在大多數情況下,讀寫可以同時進行。你自己很難實現得更有效率。具體細節可見這篇文章

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板