我是靠谱客的博主 英勇冬日,最近开发中收集的这篇文章主要介绍jdk1.8 ConcurrentHashMap computeIfAbsent 死循环,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

现象:

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

排查:

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

2. 逐行排查发布的代码

3. 分析jstack的线程栈

最后

以上就是英勇冬日为你收集整理的jdk1.8 ConcurrentHashMap computeIfAbsent 死循环的全部内容,希望文章能够帮你解决jdk1.8 ConcurrentHashMap computeIfAbsent 死循环所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部