【发布时间】:2012-11-23 13:05:12
【问题描述】:
我想知道当另一个线程仍在另一个段/分区上写入时,ConcurrentHashMap 如何处理重新散列。据我了解, ConcurrentHashMap 独立锁定段,例如, Thread1 在 Thread2 写入 segment2 之前稍稍先写入到 segment1,如果在 Thread1 插入后需要调整表的大小和重新散列,但 Thread2 处于写入操作的中间,会发生什么情况?它会锁定整个地图以进行重新散列吗?它是否有类似告诉 Thread2 停止并等到 rehash 完成的东西?因为 Thread2 可能有机会在表调整大小后最终写入 segment1,对吗?
【问题讨论】:
标签: java multithreading java.util.concurrent concurrenthashmap