【发布时间】:2013-02-13 15:45:18
【问题描述】:
在一次采访中,面试官询问了并发 Hash Map 及其功能,我对此进行了详细解释。他说,在并发HashMap更新操作的情况下,ConcurrentHashMap只锁定Map的一部分,而不是整个Map。
于是他告诉我写一个简单的程序来证明,在更新操作期间,ConcurrentHashMap 只锁定了 Map 的一部分,而不是整个 Map。我无法做到这一点,所以请告诉我如何实现这一点。
【问题讨论】:
-
如果整个地图在更新期间被锁定,您希望看到什么行为?
-
一个简单的“天真”猜测是它只是锁定了相关的“存储桶”,但是它已经实现了。
-
顺便说一句,我不相信您可以仅使用公共 API 证明这种行为。
-
鉴于内部分区的细节尚未明确,这将是一个难以“证明”的问题。
标签: java collections