JAVA并发-死锁分析

分析死锁步骤:
1.通过jps命令找出java线程id
2.通过jstack -l pid > test.txt,将堆栈信息打印到文件
3.查看堆栈信息中状态为Blocked阻塞状态的线程,分析其正在请求哪个锁并锁住了哪个对象,然后看这个锁被哪个线程持有并查看该线程在请求哪个锁,如此循环就会发现形成一个环,可以分析出是哪个锁使用出了问题

避免死锁的处理方式:
1.线程按一定顺序加锁
2.线程在获取锁时可以加上时间限制,如果超时则放弃锁请求
3.在实际使用中对sleep()方法的使用要斟酌,看可否使用yield()方法
4.使用Lock方式加锁一定要在finally块中释放锁

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值