我有一个简单的 Java 单线程应用程序。令人惊讶的是,当我运行它并打开 htop 时,我看到了大约 14 个子条目,如下面的屏幕截图所示。
这些条目代表什么?
这些肯定是线程(要确认,F2请在 htop 中按进入设置,选择Display Options
屏幕,然后检查选项[x] Display threads in a different color
)。
仅仅因为您没有自己创建线程,Java VM 并不没有。查看以下示例程序:
public class Hello {
public static void main(String S[]) {
for(;;) {
}
}
}
它还在我的htop
窗口中生成 14 个条目。当我运行jconsole
(JDK 附带的标准工具)并连接到 Hello 进程时,我看到以下信息:
线程名称暗示了它们的作用:
其中一些像 Finalizer 线程与 Java 垃圾收集器有关。上面这些条目中的一些可能与进程连接到的事实有关jconsole
,我不确定。