高手是怎么使用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精确找到异常代码的
  • 核桃露的日常做法?
  • 华硕思聪本X205笔记本u盘启动BIOS设置
  • 如何使您的Linux PC自动唤醒睡眠
  • 怎么做 咸汤圆
  • 羊血炒青菜的做法
  • 热门搜索
    库页岛旅游 稻城亚丁旅游价格 大连到云南旅游 沈阳市旅游学校 常州旅游攻略 中国旅游资讯网 亚丁稻城旅游攻略 大连金石滩旅游攻略 长沙有哪些旅游景点 香港澳门旅游攻略