java 程序堵塞的排查方式

2023-12-29 16:57:21

java 程序堵塞的排查方式

当java 程序堵塞 任何异常 信息,该如何排查。

死锁问题

先确实是否死锁问题,使用arthas ,执行 thread -b 命令。

不是死锁问题,执行 jstack 命令 保留 当前执行命令。

分析Jstack

未知全貌 不予置评

打完 jstack ,一定不要着急 下结论。只有了解程序的全部逻辑,你才能 合理地解决问题。从 主线程(#1)进行查看,先分析 主线程在什么停顿,通过主线程的调用栈,就可以大概了解 整个程序的逻辑。

然后 将其他线程的调用栈信息进行查看汇总,结合代码,基本就可以确定 堵塞的方法。

如果 有日志的话,查看日志的最后打印信息,帮助快速定位问题。

常见的堵塞

1 read 等待 输入流

2 wait 之后没有执行notify

3 存在线程一直死循环,抢占了资源

文章来源:https://blog.csdn.net/xiaoshazheng/article/details/135290061
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。