0

我有一个简单的 Java 单线程应用程序。令人惊讶的是,当我运行它并打开 htop 时,我看到了大约 14 个子条目,如下面的屏幕截图所示。

截屏

这些条目代表什么?

4

1 回答 1

0

这些肯定是线程(要确认,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 进程时,我看到以下信息:

在此处输入图像描述

线程名称暗示了它们的作用:

  • main - 我的程序本身
  • 引用处理程序
  • 终结器
  • 信号调度员
  • 附加监听器
  • RMI TCP 接受-0
  • RMI TCP 连接(1)-127.0.0.1
  • RMI 调度程序(0)
  • JMX 服务器连接超时 14
  • RMI TCP 连接(2)-127.0.0.1
  • RMI TCP 连接(4)-127.0.0.1

其中一些像 Finalizer 线程与 Java 垃圾收集器有关。上面这些条目中的一些可能与进程连接到的事实有关jconsole,我不确定。

于 2016-09-28T20:23:23.663 回答