一只编程的猪猪 2021-10-04 10:29 采纳率: 0%
浏览 73

请问 ConcurrentHashMap 的 get 方法会出现存在但 get 返回 null 的情况嘛?(基于 Java 8 及之后版本)

假如 ConcurrentHashMap 正在扩容,而有一个线程调用了 get() 方法,当 get() 方法在链表中遍历查找时,链表为 a1 -> a2 -> b1 -> b2 -> a3。
假设我们要查找的为 a3, 此时遍历到 b1 时, 扩容导致 b1 -> b2 移到了新的位置,a1 -> a2 -> a3 留在了原位置,那么此 get() 方法会返回 null嘛? 但原本 hashMap 中是存在 a3 的。
同样的,迭代器迭代过程可能出现重复读的问题嘛?

  • 写回答

1条回答 默认 最新

  • 关注

    只要a3存在就不会读到null值。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月4日
  • 创建了问题 10月4日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真