Java线程Dump分析工具--jstack
jstack 用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式: jstack [-l][F] pid 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。进程处于hung死状态可以用-F强制打出stack。 dump 文件里,值得关注的线程状态有: 死锁, Deadlock(重点关注) 执行中,Runnable 等待资源, Waiting on condition(重点关注) 等待获取监视器, Waiting on monitor entry(重点关注) 暂停,Suspended 对象等待中,Object.wait() 或 TIMED_WAITING 阻塞, Blocked(重点关注) 停止,Parked 在摘了另一篇博客的三种场景: 实例一:Waiting to lock 和