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:
注意:此时若A线程挂起,开始执行B线程
e2指向下一个元素,next指向下下个元素
3需要指向下一个节点,即为2导致死循环
Here are some more articles you might like to read next: