概述
根因:调用 computeIfAbsent 方法时,嵌套调用computeIfAbsent时,如果key的hashCode相同,逻辑中会产生死循环。
现象:
某天发布后,线上cpu飙到100%,线上DB大量大事务无法结束。我们作为底层应用,需要快速解决问题。当时就保留了线程展,然后重启应用,重启后一段时间又出现相同现象,推测是刚发布代码的问题,立即回滚代码。故障恢复。
排查:
1. 逐一排查 线上大事务的sql,寻找规律。
2. 逐行排查发布的代码
3. 分析jstack的线程栈
最后
以上就是英勇冬日为你收集整理的jdk1.8 ConcurrentHashMap computeIfAbsent 死循环的全部内容,希望文章能够帮你解决jdk1.8 ConcurrentHashMap computeIfAbsent 死循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复