2011-07-24 27 views
4

確實會增加細分的數量?或者在重新調整CHM時進行併發級別更改?在Java中的ConcurrentHashMap中重新散列會增加段的數量嗎?

如果不是(最可能),那麼爲什麼在java中給出了這種行爲,隨着CHM中條目數量的增加,更多的線程將訪問同一個段並且可能需要更高級別的併發性?

編輯:我想如果給予段的增加功能,鎖定所有段將是必需的。這是原因嗎?

+0

「rehashing?」是什麼意思? –

+0

簡短回答:不,如果你需要一個真正的併發哈希映射,你最好在別處尋找。 – bestsss

回答

0

隨着ConcurrentHashMap的增長,段的數量不會改變。可以訪問集合的線程數量並不像訪問地圖的活動線程數量那麼重要。如果你有4個核心,最多隻有4個核心,即使他們所做的只是訪問地圖而沒有做其他事情。這是一個極端的例子。

在現實中,你傾向於有不到一個線程一次訪問地圖,有時候有2-4個線程訪問地圖時使用段有幫助。

相關問題