当我在测验中问到以下问题时,我对自己的理解有些困惑:
1)ConcurrentHashMap
:据我了解,没有锁可以从此映射中获取值(对应于键)。问题是:如果这是真的,假设 t1 正在写入(通过锁定段/桶)并且 t2 尝试读取相同的内容,t2 将不会获得正确的值,因此与 t2 的值不一致
2)HashMap
:据我了解,在将元素添加到hashbucket之前,将hashvalue H计算为键(key.hashcode())的hashcode%16(给出从0到15的值),然后添加到bucket中其哈希值为 H
注意:有 16 个桶(默认实现),代表ArrayList
一个LinkedList
|0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 | 11 |12 |13 |14 |15 |
ArrayList at 2000(内存地址)
您可以说这是ConcurrentHashMap 中的 Segmentation 的重复,关于Java 控制器中并发 hashmap、 HashMap 或 ConcurrentHashMap 的内部工作?等。但我需要了解疑虑。几个链接/博客可以很好地解释对我有用。谢谢