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 @   BBS_自律  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示