1、一稍僚敉视个CPU密集型线程的demo:package chapter1;public class FindJavaThreadInTaskManager { public stati艘早祓胂c 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。在Linux上执行上述代码命令:java -jar JavaStudy.jar
3、找到CPU利用率持续比较高的进程,获取进程号,此处PID为3036命令:top
4、找到上述进程中,CPU利用率比士嫣轶嗄较高的线程号TID(十进制数),此处为3046命令:ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd
5、将获取的线程号(十进制数)转换成十六进制,此处为0xb46命令:printf 争犸禀淫"%x\n" 3046
6、查看进程PID为3036中nid为0xb46的线程信息。命令:jstack -l3036
7、总结:可以看到jstac氯短赤亻k命令的输出结果是相当准确的:显示耗CPU比较高的代码与实际情况相同,都是第13行。放心的用吧。Enjoy youself!