Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 线程转储:寻找什么来确定负责100%CPU的线程?_Java_Multithreading_Thread Dump - Fatal编程技术网

Java 线程转储:寻找什么来确定负责100%CPU的线程?

Java 线程转储:寻找什么来确定负责100%CPU的线程?,java,multithreading,thread-dump,Java,Multithreading,Thread Dump,为了解决并发运行数百个线程的大型系统上100%的CPU消耗问题,我在这篇Oracle文章的帮助下生成了一个线程转储 为了找出哪个线程是造成这种高CPU消耗的原因,我知道我应该关注处于可运行状态的线程,但是有几十个线程。所以这就像大海捞针 在所有处于可运行状态的线程中,我还应该寻找什么来关注负责100%CPU消耗的特定线程?在linux上: 1.您可以通过命令top-Hp$pidof java获得最繁忙的线程id 2.然后将线程id转换为十六进制:prinrf%x\n{the tid} 3.现在,

为了解决并发运行数百个线程的大型系统上100%的CPU消耗问题,我在这篇Oracle文章的帮助下生成了一个线程转储

为了找出哪个线程是造成这种高CPU消耗的原因,我知道我应该关注处于可运行状态的线程,但是有几十个线程。所以这就像大海捞针

在所有处于可运行状态的线程中,我还应该寻找什么来关注负责100%CPU消耗的特定线程?

在linux上: 1.您可以通过命令top-Hp$pidof java获得最繁忙的线程id 2.然后将线程id转换为十六进制:prinrf%x\n{the tid} 3.现在,在线程转储中搜索十六进制id,即消耗最多CPU的线程

在其他操作系统上,谷歌如何查找进程中最繁忙的线程。

在linux上: 1.您可以通过命令top-Hp$pidof java获得最繁忙的线程id 2.然后将线程id转换为十六进制:prinrf%x\n{the tid} 3.现在,在线程转储中搜索十六进制id,即消耗最多CPU的线程


在其他操作系统上,谷歌如何在一个进程中找到最繁忙的线程。

关于@meng出色答案的Windows方面:

运行Microsoft并拍摄其屏幕截图,同时: 在Java进程控制台上通过Ctrl+Break进行线程转储。 在process Explorer中的“进程属性”的“线程”选项卡中找到消耗CPU最多的TID,并将这些数字转换为十六进制。 找到线程转储中显示为'nid'==本机id的十六进制数。
@meng极好答案的窗口部分:

运行Microsoft并拍摄其屏幕截图,同时: 在Java进程控制台上通过Ctrl+Break进行线程转储。 在process Explorer中的“进程属性”的“线程”选项卡中找到消耗CPU最多的TID,并将这些数字转换为十六进制。 找到线程转储中显示为'nid'==本机id的十六进制数。