jstack使用

A. windows下

1. 编写程序,并执行程序

@Test
public void whileTest(){//必须为public
    while(true){

    }
}

2. 打开cmd创建,输入:jps或tasklist

C:\Users\Administrator>jps
1072 Launcher
7012
7656 JUnitStarter
10364 Jps

查找到当前进程:7656。

3. 接着输入:C:\Users\Administrator>jstack 7656 > 11000.out

4. 打开process Explorer,找到PID=7656的java.exe

jstack使用

5. 右键-properties,在Image标签页下可以看到,是当前执行的程序

jstack使用

6. 打开Threads标签页,找到访问cpu多的java.exe对应的TID:11000。

jstack使用

7. 打开jstack日志文件,搜索2af8(11000的十六进制数)

    从文件最后面往前找比较方便。

jstack使用