首页 > 其他分享 >死锁问题定位与分析

死锁问题定位与分析

时间:2023-07-11 09:34:00浏览次数:31  
标签:分析 定位 加锁 log dead 死锁 线程 CaseController

死锁问题定位与分析

一.环境搭建

1.准备脚本,执行压测

2.用jstack 打印日志

jstack 112759 >dead.log

3.下载日志到本地

sz dead.log

二.问题定位

1.打开dead.log

搜索deadlock

2.查看死锁的线程

3.查看死锁位置

三.问题分析

1.下载死锁的类文件

Sz CaseController.class

2.使用jd-gui工具,打开文件,根据提示路径找到死锁的代码

at cn.testfan.perf.beihe.pinter.http.CaseController.dead(CaseController.java:81)

四.优化思路

1.避免嵌套枷锁

2.减少加锁的内容

五.线程阻塞和线程死锁的异同对比

1.相同点:都是代码加锁导致

2.不同点

阻塞只有一个锁,发生阻塞后只是性能慢,程序可运行

死锁嵌套枷锁,发生死锁后服务器不相应请求,cpu资源利用率为0

标签:分析,定位,加锁,log,dead,死锁,线程,CaseController
From: https://www.cnblogs.com/shaohuang/p/17509275.html

相关文章