gpt4 book ai didi

java - Top 命令 - Java 进程内线程的名称

转载 作者:太空狗 更新时间:2023-10-29 12:38:56 29 4
gpt4 key购买 nike

我有一个 Java 应用程序,我想检查属于该应用程序的每个线程在哪个处理器上运行。这可以使用 top 来完成:

top -H -p [pid]

我的问题是,在我的 PC 上显示线程名称,而在服务器上它只显示 java.lang。

我的电脑:Centos 6.10 2.6.32-754.12.1.el6.x86_64

服务器:Centos 6.9 2.6.32-696.18.7.el6.x86_64

同顶版本:3.2.8

相同的 java 版本:“1.8.0_112”

我试图避免必须执行线程转储然后识别线程名称。

最佳答案

使用 jcmd <PID> Thread.print并拿起 nid ( native 线程 ID)。(至少涉及 1 个线程转储。)

"Pinpoint-TcpDataExecutor(13-0)" #22 daemon prio=5 os_prio=0 tid=0x00007f14495d1000 nid=0x35 waiting on condition [0x00007f141c6ad000]
java.lang.Thread.State: TIMED_WAITING (parking)

然后使用/proc/<pid>/task/<nid>/status监控线程的状态

cat /proc/24/task/53/status
Name: java
Umask: 0022
State: S (sleeping)
Tgid: 24
Ngid: 0
Pid: 53
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 512

关于java - Top 命令 - Java 进程内线程的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56792782/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com