关于堆栈中锁的持有者

fengdavid 2020-03-30 12:27:59
最近遇到应用服务器不能访问的问题,通过抓取堆栈,发现应用服务器中用于处理请求的线程都处在WAINTING 或者BLOCKED状态,通过分析有45个线程调用ehcache的get()函数,获取读锁(然后一直WAITING,等待一把锁(假设为锁A)),还有3个线程调用ehcache的removeAll()函数,获取写锁(也是一直WAITING,等待锁A)。这个48线程导致了其他线程的阻塞。

而在整个堆栈中只有parking waiting for A的信息,而没有任何的线程持有锁A,问题是这个锁A去哪了,为什么所有的线程都拿不到它?
请大神们帮忙!!!

...全文
225 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧