hashMap产生的循环依赖问题

1.看这个 : 

图解JDK1.7中HashMap头插法扩容造成的死循环问题

 

5张图讲明白JDK1.7下的HashMap死循环(原理+实战)

 

转:

hashMap产生的循环依赖问题

 

如何解决

1.为了解决这个问题,jdk1.8把扩容是复制元素到新数组由 头插法 改成了 尾插法 。此外,引入了红黑树,提升遍历节点的效率

2.此外,HashMap是非线程安全的,要避免在多线程的环境中使用HashMap,而应该改成使用ConcurrentHashMap。

所以总结一下要避免发生死循环的问题的方法:

  1. 改成ConcurrentHashMap

  PS. 即使JDK升级到1.8任然有死循环的问题。

 

新table是处于线程A自己栈中,是线程私有的,不肥线程2的影响

 

为什么HashMap并发时会引起死循环?

posted @ 2023-09-08 11:41  BBS_自律  阅读(77)  评论(0编辑  收藏  举报