关于jstack显示锁的相关信息

使用jstack可以在线程堆栈中看到关于锁的信息

[b][size=large]Synchronized关键字[/size][/b]
等待获得锁的
[img]http://dl2.iteye.com/upload/attachment/0101/9556/6b9fa5da-9932-32b0-b0b2-d0d508b9ca50.png[/img]
可以显示出在等待哪个锁

获得锁的
[img]http://dl2.iteye.com/upload/attachment/0101/9554/314fed24-f03a-3b55-81e6-2b4a2f66c09e.png[/img]
可以显示出获得的锁

[b][size=large]ReentrantLock[/size][/b]
等待获得锁的
[img]http://dl2.iteye.com/upload/attachment/0101/9564/1f17a242-99ce-3e24-91bd-1e2d2d8b2164.png[/img]

获得锁的
[img]http://dl2.iteye.com/upload/attachment/0101/9562/b35cea1b-6ab1-3a24-a00f-f646d9320812.png[/img]
什么都没有,没有标明持有了哪个锁,需要在jstack加一个参数,jstack -l
[img]http://dl2.iteye.com/upload/attachment/0101/9566/5ef4a549-f4f7-3abd-be8d-375aef23231d.png[/img]
这样就可以显示持有锁的信息了。

另外,ReentrantLock可以显示出线程等待获得哪个锁,应该是AQS在阻塞线程的时候,通过LockSupport的
public static void park(Object blocker)

方法实现的,通过参数blocker将自己(this)传入。
可以显示获得锁的信息,应该是ReentrantLock中的NonfairSync和FairSync通过AbstractOwnableSynchronizer的
protected final void setExclusiveOwnerThread(Thread t)

实现的,将获得锁的线程传入。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值