手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

高手是怎么使用jstack精确找到异常代码的

时间:2024-10-28 20:24:02

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()); } } }}

高手是怎么使用jstack精确找到异常代码的

2、将上述代码打成Jar。在Linux上执行上述代码命令:java -jar JavaStudy.jar

高手是怎么使用jstack精确找到异常代码的

3、找到CPU利用率持续比较高的进程,获取进程号,此处PID为3036命令:top

高手是怎么使用jstack精确找到异常代码的

4、找到上述进程中,CPU利用率比士嫣轶嗄较高的线程号TID(十进制数),此处为3046命令:ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd

高手是怎么使用jstack精确找到异常代码的

5、将获取的线程号(十进制数)转换成十六进制,此处为0xb46命令:printf 争犸禀淫"%x\n" 3046

高手是怎么使用jstack精确找到异常代码的

6、查看进程PID为3036中nid为0xb46的线程信息。命令:jstack -l3036

高手是怎么使用jstack精确找到异常代码的

7、总结:可以看到jstac氯短赤亻k命令的输出结果是相当准确的:显示耗CPU比较高的代码与实际情况相同,都是第13行。放心的用吧。Enjoy youself!

高手是怎么使用jstack精确找到异常代码的
© 手抄报圈