JVM-Kern-Threads

Beim Starten einer JVM-Instanz auf meinem Computer mit einer einfachen Klasse, in der unendlich viel Schlaf ausgeführt wirdmain()Ich sehe vier Schlüsselthreads (außer dem Hauptthread) in der JVM:

Listener anhängenReferenz-HandlerFinalizerSignal DispatcherDestroyJavaVM

Ich bin neugierig, den Zweck jedes dieser zentralen JVM-Threads zu verstehen. Bei einer schnellen Internetsuche habe ich die folgenden Details zu diesen Themen gefunden:

Listener anhängen: Beim dynamischen Anhängen befindet sich in der Ziel-JVM ein Thread zum Anhängen von Listenern. Dies ist ein Thread, der gestartet wird, wenn die erste Anforderung zum Anhängen auftritt.Signal Dispatcher: Wenn das Betriebssystem ein Signal an die JVM ausgibt, leitet der Signal-Dispatcher-Thread das Signal an den entsprechenden Handler weiter.Referenz-Handler: Thread mit hoher Priorität zum Einreihen ausstehender Verweise. Der GC erstellt eine einfache verknüpfte Liste von Referenzen, die verarbeitet werden müssen, und dieser Thread fügt sie schnell einer richtigen Warteschlange hinzu und benachrichtigt die ReferenceQueue-Listener.Finalizer: Der Finalizer-Thread ruft Finalizer-Methoden auf.DestroyJavaVM: Dieser Thread entlädt die Java VM beim Beenden des Programms. Meistens sollte es warten.

Ich möchte weitere Details (oder Korrekturen im Verständnis) zu diesen Threads und Referenzdokumentationen (falls bekannt) erfahren.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage