我是靠谱客的博主 英勇冬日,这篇文章主要介绍jdk1.8 ConcurrentHashMap computeIfAbsent 死循环,现在分享给大家,希望可以做个参考。

根因:调用 computeIfAbsent 方法时,嵌套调用computeIfAbsent时,如果key的hashCode相同,逻辑中会产生死循环。

现象:

某天发布后,线上cpu飙到100%,线上DB大量大事务无法结束。我们作为底层应用,需要快速解决问题。当时就保留了线程展,然后重启应用,重启后一段时间又出现相同现象,推测是刚发布代码的问题,立即回滚代码。故障恢复。

排查:

1. 逐一排查 线上大事务的sql,寻找规律。

2. 逐行排查发布的代码

3. 分析jstack的线程栈

最后

以上就是英勇冬日最近收集整理的关于jdk1.8 ConcurrentHashMap computeIfAbsent 死循环的全部内容,更多相关jdk1.8内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部