当Java应用程序开始执行时,这些线程是什么?
我创建了一个简单的Java应用程序,它有一个JFrame和几个JButton。当我尝试使用JVMTI检查java应用程序时,我发现尽管我没有创建任何显式线程,但它们中有很多都是派生出来的 我可以找到以下线程:当Java应用程序开始执行时,这些线程是什么?,java,multithreading,jvmti,Java,Multithreading,Jvmti,我创建了一个简单的Java应用程序,它有一个JFrame和几个JButton。当我尝试使用JVMTI检查java应用程序时,我发现尽管我没有创建任何显式线程,但它们中有很多都是派生出来的 我可以找到以下线程: 销毁JavaVM AWT-EventQueue-0 AWT关机 AWT-XAWT-守护进程线程 Java2D处理器-守护进程线程 Thread-0-守护进程线程[由JVMTI代理创建] 信号调度器-守护进程线程 Finalize-Daemon线程 引用处理程序-守护进程线程 其中大多数
- 销毁JavaVM
- AWT-EventQueue-0
- AWT关机
- AWT-XAWT-守护进程线程
- Java2D处理器-守护进程线程
- Thread-0-守护进程线程[由JVMTI代理创建]
- 信号调度器-守护进程线程
- Finalize-Daemon线程
- 引用处理程序-守护进程线程
其中大多数处于可运行状态。有人能告诉我这些线程的功能吗?底层库使用这些线程来管理图形应用程序所需的小部件、显示、事件循环和其他管道 GUI应用程序通常有很多移动部件,如果您注意到,您不必显式地编写任何代码来管理这些部件(例如,更新屏幕、绘制按钮或处理鼠标移动)。这组后台线程负责管理这些部分,并使您能够尽可能轻松地专注于应用程序逻辑
这些线程是由您使用的库(例如AWT、Swing等)生成的,通常在终止时清理它们自己(以及它们管理的资源)。我可以告诉您一个,并猜测三个
- AWT-EventQueue-0
- Java2D处理器-守护进程线程
- Finalize-Daemon线程
- 引用处理程序-守护进程线程