1先来一段飙升代码

public class FindJavaThreadInTaskManager {
    public static void main(String[] args) {
        Thread thread = new Thread(new Worker());
        thread.start();
    }

    static class Worker implements Runnable {
        @Override
        public void run() {
            while (true) {
                System.out.println("Thread Name:" + Thread.currentThread().getName());
            }
        }
    }
}

2 、将程序打成jar包 t1.jar
3 、放到linux服务器上运行jar包方法
java -cp t1.jar test1.FindJavaThreadInTaskManager
4、找到CPU利用率持续比较高的进程,获取进程号,此处PID为5735

top -p `pgrep -d , java` 其中pgrep是显示系统中java应用的进程号,top -p是只显示这些进程的信息。

 

5、top -Hp 5735

 

6、将pid转成16进制
printf %x 5747 =======》1673
7、查看当前线程的堆栈信息
jstack 5735 |grep -A 200 1673

其他参考:https://www.cnblogs.com/dongjh/p/11343685.html