1、先写一段代码来模拟一个耗CPU的线程代码:package chapter1;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、执行上述代码,模拟一个CPU和IO利用率都高线程
3、打开任务管理,此例中,CPU利用率比较高java进程ID为7064
4、使用ProcessExplorer找到ID号为7064的进程
5、使用ProcessExplorer查看进程ID为7064的属性信息在Thread标签找到CPU利用率的线程信息,TID为6120(10进制)
6、将CPU利用率高的线程ID 6120(10进制)转换为0x17E8(16进制)
7、使用jstack查看进程7064的线程信息。找到线程号为0x17E8的线程命令:jstack -l 7064
8、查看第13行的代码信息,与实际情况相符。至此,找到引发CPU利用率高的代码