java - top -H -p <JVMprocessid> 给出了什么? java线程数?

标签 java linux multithreading jvm jvm-hotspot

我正在运行一个多线程 Java 应用程序。该应用程序正在运行近 150 个线程。 我想检查那些线程的详细内存使用情况。 当我执行 top -H -p 时,我只得到 14 个计数,因为我在应用程序中运行接近 150 个线程。 这听起来很困惑。那么我使用 top 命令得到的数字是多少?

谁能帮我理解这种行为?

最佳答案

在 linux 上,每个 jvm 线程将有一个 native 线程。 JVM 线程包括应用程序线程和 JVM 用于 GC 和其他内务处理的内部线程。通常有 4-10 个,尽管它因硬件、配置等而异。

top -H 将准确反射(reflect) jvm 线程数,应用程序线程数将是 jvm 线程 - 管家线程。

150 个应用程序线程的规范可能被解释为最大值,而不是固定数量。

关于java - top -H -p <JVMprocessid> 给出了什么? java线程数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006949/

相关文章:

java - WebElement 的 setAttribute() 方法

python - 线程已完成的进程永远不会退出

c# - System.Threading.Task 不包含定义

java - mongodb 使用 $inc 更新数组元素不起作用

java - 将嵌套循环的输出存储为新数组 - Java

linux - 当使用 ssh 作为 oracle 用户连接时以 root 身份运行脚本

linux - 如何开始将现有的cpu调度更改为linux中的组调度

c++ - X11 上的编辑框

javascript - 如何防止 Node.js 12 工作线程立即终止?

Java,将 JList 中元素的值加在一起