我正在运行一个多线程 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/