HashMap多线程扩容导致死循环解析(JDK1.7)
由于头插法的原因,再次执行头插法的时候会将原来的链表顺序反过来,所以当第一个线程执行完扩容之后会将顺序从。最后由于e等于null,退出循环,当下次遍历到该元素时就会进入死循环。1->2->3 到 3->2->1。线程二第一次执行插入结束后。线程二准备第二次循环结束后。线程二第二次执行插入结束后。线程二准备第二次循环结束后。线程二第三次执行插入结束后。线程二准备第三次循环结束后。
原创
2024-01-16 16:30:56 ·
693 阅读 ·
0 评论