jstack 1.通过堆栈信息看,线程状态为RUNNABLE,不是BLOCKED状态,说明不是因为锁导致线程阻塞,而是阻塞在了网络读取上 2.网络连接时,必须设置超时,不能无限制等待。发散一下,开发系统时,必须考虑各种异常情况 在thread dump中,要留意下面几种状态 死锁,Deadlock(重点关注) 等待资源,Waiting on condition(重点关注) 等待获取监视器,Waiting on monitor entry(重点关注) 阻塞,Blocked(重点关注) 执行中,Runnable 暂停,Suspended 对象等待中,Object.wait() 或 TIMED_WAITING 停止,Parked 总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令 linux使用jstack来找出死循环的java代码 jstack和线程dump分析 linux 下jstack分析cpu占用100%跟踪方法 |
|