高手是怎么使用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自动唤醒睡眠
  • 怎么做 咸汤圆
  • 羊血炒青菜的做法
  • 热门搜索
    小学健康教育手抄报 节约粮食手抄报图片 保护动物的手抄报 有关运动会的手抄报 法制的手抄报 孝行雅行我先行手抄报 春天的手抄报大全 争当四好少年手抄报 我的绿色环保梦手抄报 我中国梦手抄报内容