JAVA DestroyJavaVM 线程高CPU
JAVA DestroyJavaVM thread high CPU
我发现 DestroyJavaVM 线程在应用程序启动时使用了 99% 的 cpu(大约一个 cpu 核心)。我找不到该线程的任何文档。 Whosebug 中的一个答案说这个线程除了加入其他没有守护进程的线程之外什么都不做。这让我感到困惑,为什么它在应用程序启动时使用这么多 cpu。我还发现一个 post 说 DestroyJavaVM 线程是其他线程的父线程,top 命令将所有子线程使用率累加到父线程。但是当我使用 pstree 命令显示 java 线程树时,那不是真的。
DestroyJavaVM
不是单独的线程。它基本上是一个启动 VM 关闭的 Java 线程,即最后一个非守护程序应用程序线程,或者调用 System.exit()
.
的线程
当 JVM 即将终止时,它将当前线程重命名为 DestroyJavaVM
并使用该线程启动关闭序列。
在简单应用的情况下,当所有业务逻辑都从main
方法调用时,当main
方法 returns。您观察到的可能只是消耗 CPU 完成其主要工作的主线程。
我发现 DestroyJavaVM 线程在应用程序启动时使用了 99% 的 cpu(大约一个 cpu 核心)。我找不到该线程的任何文档。 Whosebug 中的一个答案说这个线程除了加入其他没有守护进程的线程之外什么都不做。这让我感到困惑,为什么它在应用程序启动时使用这么多 cpu。我还发现一个 post 说 DestroyJavaVM 线程是其他线程的父线程,top 命令将所有子线程使用率累加到父线程。但是当我使用 pstree 命令显示 java 线程树时,那不是真的。
DestroyJavaVM
不是单独的线程。它基本上是一个启动 VM 关闭的 Java 线程,即最后一个非守护程序应用程序线程,或者调用 System.exit()
.
当 JVM 即将终止时,它将当前线程重命名为 DestroyJavaVM
并使用该线程启动关闭序列。
在简单应用的情况下,当所有业务逻辑都从main
方法调用时,当main
方法 returns。您观察到的可能只是消耗 CPU 完成其主要工作的主线程。