为什么我的Java程序中突然出现了3个线程?

为什么我的Java程序中突然出现了3个线程?,java,multithreading,Java,Multithreading,正如标题所暗示的,我不知道我的程序中怎么会有三个线程 我的建议是: (1) 主线 (2) EDT(因为JButton) (3) 以下是我的代码(非常简单): 线程的名称总是有用的。您可以通过以下方式按名称列出所有线程: import java.util.*; public class ListThreads { public static void main(String []args){ Set<Thread> threadSet = Thread.

正如标题所暗示的,我不知道我的程序中怎么会有三个线程

我的建议是:

(1) 主线

(2) EDT(因为JButton)

(3)

以下是我的代码(非常简单):


线程的名称总是有用的。您可以通过以下方式按名称列出所有线程:

import java.util.*;

public class ListThreads {

     public static void main(String []args){
        Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
        for (Thread t : threadSet) {
            System.out.println (t.getName());
        }
     }
}
import java.util.*;
公共类ListThreads{
公共静态void main(字符串[]args){
Set threadSet=Thread.getAllStackTraces().keySet();
用于(螺纹t:螺纹组){
System.out.println(t.getName());
}
}
}
对我来说,它列出了:

  • 终结器
  • 信号调度员
  • 主要
  • 引用处理程序

编辑:线程集行取自此处:

它是用于产生利润的线程。:)别开玩笑了,你不必担心,JVM可以自由创建任意多个线程供自己使用。您可以使用调试器或此处的一些答案将它们全部列出,以查看线程名称以指示它们的用途,而不是试图猜测它们可能是什么。
import java.util.*;

public class ListThreads {

     public static void main(String []args){
        Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
        for (Thread t : threadSet) {
            System.out.println (t.getName());
        }
     }
}