Thread Dump用来诊断Java应用的问题,可以用来查找内存泄露,发现死锁线程等等。通过它可以得到线程,线程运行状态、标识、调用的堆栈,堆栈包含完整的类名,所执行的方法,以及源代码所在的行数等等信息
使用方法:
Windows平台:
使用组合键 Ctrl + Break。
例如,控制台运行 tomcat, 即在cmd 命令行下面运行tomcat的 bin 目录下面的 startup.bat 批处理文件启动tomcat。
然后,在该控制台窗口按组合键 Ctrl + Break,即可打印出当前的Thread Dump
Linux、Unix平台:
使用命令 kill –3 pid
例如,控制台运行了 tomcat, 使用 ps -aux |grep tomcat 得到 tomcat 程序运行的pid,例如得到是 1677, 则在控制台运行 kill –3 1677,即可打印出当前的Thread Dump
tomcat 输出在/logs/catalina.out文件中
使用java自带命令jstack:
jstack pid > pid_stack.log