Ist garbage collector daemon-thread?
Ist garbage collector ein daemon (hintergrund -) thread?
Dank.
- ich denke, dass es umgesetzt werden muss als eine native thread
- Korrektur...
- Chandran: Nein, ein garbage collector nicht brauchen, um zu Leben in einem eigenen thread an alle. In der Tat, es ist ziemlich kompliziert, es so zu tun (obwohl es hat einige Vorteile wie keine Unterbrechung des Programms, wie die normalen "stop-the-world" - Sammler zu tun).
- Im Zusammenhang? stackoverflow.com/questions/2213340/...
- tatsächlich heute ist die GC und die JIT sind im hintergrund laufen high-priority-threads. GC in hintergrund-threads haben viel zu viele Vorteile zu passieren.
- Gut zu wissen, aber ich nehme an, Sie sprechen von Sun (Oracle) Referenz-Implementierung. Ich denke, nicht jeder Java-Implementierung unterstützt threaded GC.
- eigentlich die meisten modernen JVMs würde profitieren von concurrent GC, vorausgesetzt, das system ist Ersatz-Kerne. Um es einfach auszudrücken: es wird nicht möglich sein, richtig zu verwalten großen Haufen w/o. Die Pausen werden intolerant.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehe ich davon aus ja, die Garbage-collector-thread ein daemon-thread. Daemon-thread ist ein thread mit niedriger Priorität läuft zeitweise im Boden zurück, tut der garbage collection-Vorgang oder anderen Anforderungen für das java runtime-system.
Es ist nicht ein thread von einem
java.lang.Thread
Perspektive zumindest.java.lang.Thread
. So, ich habe indirekt angedeutet, dass es eine native Implementierung abstrahiert von den Benutzer.Ja: http://www.javaperspective.com/daemon-threads.html :
(Daemon-threads als threads, die im hintergrund laufen und Sie sind im Allgemeinen als service-Provider für die user-threads. Zum Beispiel, die Java garbage collector ist ein daemon-thread)
auf jdk 1.8 in folgenden threads aufgelistet sind mit
Ausgabe -
Gibt es keine GC-thread. Es kann sicher gesagt werden, garbage collection-Prozess ist native.
Einen daemon-thread ist auch ein thread, der läuft weiter, auch nachdem die JVM beendet wird. Aus der Oracle-Dokumentation
Wenn eine Java-Virtuelle Maschine startet, gibt es normalerweise eine einzige nicht-daemon-thread (was in der Regel ruft die Methode mit dem Namen main, der einige bestimmten Klasse). Die Java Virtual Machine wird weiterhin ausgeführt, threads, bis eines der folgenden Auftritt:
•Die exit-Methode der Klasse Runtime aufgerufen wurde und die security-manager zugelassen hat, dass der exit-operation stattfinden.
•Alle threads, die nicht-daemon threads sind gestorben, entweder durch die Rückkehr aus dem Aufruf der run-Methode oder durch auslösen einer Ausnahme, der sich ausbreitet, über die run-Methode.
Also, wenn GC ist ein daemon thread, sollte es eine native thread erzeugt, indem die java-Laufzeit, können aber weiterhin ausgeführt werden, nachdem er die JVM beendet