Linux中的top命令如何显示Java线程?

3
在一个Linux服务器(Fedora)上,我们运行一个单独的JBOSS应用服务器,并使用quartz来调度我们的任务。 昨天, 我使用top命令查看进程状态, 发现显示了多个具有不同pid的名为Java的进程。 但是如果我使用ps aux | grep java只显示一个Java进程(Jboss AS)? 所以我的问题是: Java线程是否映射到本地Linux线程(克隆进程),或者top不显示线程? 环境: 1.内核:2.6.18 2.JDK:1.6.0-23
1个回答

6
这取决于你使用的各种工具版本。很可能,你使用的 top 版本无法理解 Linux 上线程和进程之间的关系,因此会错误地将每个线程显示为其自己的进程。Java 线程的实现取决于你的虚拟机,但在现代 JVM 和 Linux 版本上的典型实现是 1 对 1 的,也就是说,每个 Java 线程都是由 clone 系统调用创建的 Linux KSE。
如果你使用的是过去三年内发布的 Linux 发行版,就不应该遇到这个问题。

1
完全支持修复的发行版最早于2005年推出。但是没有修复的发行版一直到2008年仍然得到了全面更新、支持和广泛分发。 - David Schwartz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接