有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我的单线程hello world应用程序使用22个OS线程?

出于好奇,我写了Hello World,并在我的打印声明上设置了一个断点

public class Program
{
    public static void main(String[] args)
    {
        System.out.println("Hello");
    }
}

当到达断点时,我在windows中调出任务管理器,查看JVM进程分配了多少线程。看到22岁,我很震惊。为什么这个简单的程序会产生这么多线程


共 (3) 个答案

  1. # 2 楼答案

    JVM利用一些守护进程线程(例如垃圾收集器、终结器等)。但是,在本例中,附加调试器实际上创建了几个线程来处理调试器连接

  2. # 3 楼答案

    如上所述,有许多守护进程线程总是由JVM运行。要查看所有当前正在运行的线程,请打开Java VisualVM文件夹中的JDK >bin并转到线程。在那里,您可以看到所有正在运行、睡眠、等待和监视线程

    目前在我的VisualVM中,我有19个活动线程,其中15是守护进程线程