【发布时间】:2014-03-19 05:42:47
【问题描述】:
我们有一个应用程序泄漏了一点内存,这有点轻描淡写。
我正在使用 jstack 来尝试找出导致问题的原因。
我发现以 http-8080-42 开头的线程的线程数增长了很多
示例:
“http-8080-13”守护进程prio=10 tid=0x00002aacb4ae6000 nid=0x5ddf 等待监视器条目[0x0000000043e65000] java.lang.Thread.State: BLOCKED (在对象监视器上) 在 com.reg_dashboard.DataModel.findRegsRow(DataModel.java:280) - 等待锁定 (com.reg_dashboard.DataModel 的 java.lang.Class)
我的第一个猜测是,这些线程中的每一个都是来自客户端的请求,它正在等待某种同步块。 我的问题是这些线程已经运行了很长时间(到目前为止 10 分钟)。
我的问题是这样的:
有什么方法可以杀死导致我的应用程序挂起的线程???有一些请求正在加载 catche 并被卡住,其他进程正在等待对象被解锁!
【问题讨论】: