应该是什么东西获取了某个锁长时间不释放,而很多其他的线程又在等待这个锁。
说明:
1)线程状态是 Blocked,阻塞状态。说明线程等待资源超时!
2)“ waiting to lock 0x000000074ada45b8”指,线程在等待给这个 0x000000074ada45b8 地址上锁(英文可描述为:trying to obtain 0x000000074ada45b8 lock)。
3)在 dump 日志里查找字符串 0x000000074ada45b8,发现有大量线程都在等待给这个地址上锁。如果能在日志里找到谁获得了这个锁(如locked 0x000000074ada45b8 ),就可以顺藤摸瓜了。
4)“waiting for monitor entry”说明此线程通过 synchronized(obj) {……} 申请进入了临界区,从而进入了下图1中的“Entry Set”队列,但该 obj 对应的 monitor 被其他线程拥有,所以本线程在 Entry Set 队列中等待。
5)第一行里,http-nio-8080-exec-7 daemon是 Thread Name 。tid指Java Thread id。nid指native线程的id。prio是线程优先级。[0x00007f9c557d4000]是线程栈起始地址。
取消
评论