【发布时间】:2013-04-09 18:13:21
【问题描述】:
在 ConcurrentHashMap 中有分段的概念。如果两个线程试图访问 ConcurrentHashMap 意味着什么,它们被分成两个块,块的默认大小为 16。
现在假设 ConcurrentHashMap 只有两个元素,两个不同的线程来了,thread1 尝试修改第一个值,thread2 尝试修改第二个值。这种情况下ConcurrentHashMap会不会去切分?
现在在不同的情况下,两个线程都尝试修改相同的值 ConcurrentHashMap 将如何处理这种情况?通过使用锁定机制还是有别的东西?
【问题讨论】:
-
您需要定义“修改一个值”。 hashmap 不太关心更改其值的属性,并且根本不与之交互,请显示示例代码。
标签: java java.util.concurrent concurrenthashmap