HashMap死循环原因


单线程扩容

  • 初始情况
  • 开始扩容
  • 最终结果

多线程扩容导致死循环

  • 两个线程A与B同时进行扩容
  • A线程先进行扩容

注意:此时若A线程挂起,开始执行B线程

  • B开始第一次循环扩容
  • 第二次循环

e2指向下一个元素,next指向下下个元素

  • 第三次循环

3需要指向下一个节点,即为2导致死循环

参考




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • 2379. Minimum Recolors to Get K Consecutive Black Blocks
  • 2471. Minimum Number of Operations to Sort a Binary Tree by Level
  • 1387. Sort Integers by The Power Value
  • 2090. K Radius Subarray Averages
  • 2545. Sort the Students by Their Kth Score