java - 当 Java 应用程序开始执行时产生的这些线程是什么?

标签 java multithreading jvmti

我创建了一个简单的 Java 应用程序,它有一个 JFrame 和几个 JButton。当我尝试使用 JVMTI 检查 Java 应用程序时,我发现虽然我没有创建任何显式线程,但产生了很多线程。

我可以找到以下主题:

  • 销毁JavaVM
  • AWT-EventQueue-0
  • AWT 关闭
  • AWT-XAWT- 守护线程
  • Java2D Disposer - 守护线程
  • Thread-0- 守护线程 [由 JVMTI 代理创建]
  • Signal Dispatcher - 守护线程
  • 完成 - 守护线程
  • 引用处理程序 - 守护线程

大部分都处于Runnable状态。谁能告诉我这些线程的功能?

最佳答案

底层库使用这些线程来管理图形应用程序所需的小部件、显示、事件循环和其他管道。

GUI 应用程序通常有很多 Activity 部件,如果您注意到您不必显式编写任何代码来管理这些部件(例如,更新屏幕、绘制按钮或处理鼠标)移动)。这组后台线程负责管理这些部分,并使您尽可能轻松地专注于您的应用程序逻辑。

这些线程由您使用的库(例如 AWT、Swing 等)生成,通常会在终止时自行清理(以及它们管理的资源)。

关于java - 当 Java 应用程序开始执行时产生的这些线程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239186/

相关文章:

Java 附加 API : UnsatisfiedLinkError

java - Neo4j Cypher Java Jersey 消息正文编写器未找到

java - Java 中的多重继承解决方法?

java - 使用 Hashmap/其他方法减少多次操作字符串的运行时间

c - c中的pthreads到进程

android - 为什么这个线程不会暂停和循环?

java - 使用 JVMTI 进行线程感知堆分配跟踪

java - Java 对象的身份哈希码

java - Jmock如何与HttpSession和HttpServletRequest一起使用

java - Java中的线程不是同时启动的,而是顺序启动的