Thread nicht von GC zerstört

Gucky

Top Contributor
Hallo liebes Java Forum,

in einem größeren Projekt wird eine kompliziertere Operation ausgeführt, welche ich in einen separaten Thread verlagert habe.
Da ich keine Lust hatte extra eine Variable dazu zu erstellen, habe ich es einfach so gelöst:

Java:
void threadErstellen(){
  new RechenThread().start();
}

Jetzt ist mir aufgefallen, dass dieser Thread durch nichts mehr referenziert wird und eigentlich vom GC geholt werden müsste. Das passiert aber nicht. Das Programm arbeitet tadellos.
Zwar hält der Thread einge Referenzen auf ihrerseits von anderer Seite referenzoerte Objekte aber der RechenThread wird nicht mehr referenziert.

Vielleicht weiß da jemand mehr als ich.

Liebe Grüße
Gucky
 
Laufende Threads sind Garbage Collector "resistent". Afaik hält die JVM eine Referenz auf diese Threads. Zu dem Thema kannst du evtl auch mal GC roots googlen.
 
Das hättest du dir aber auch selbst beantworten können. Zum Programmstart wird die statische Methode Main aufgerufen. Es existiert also kein Objekt, welches referenziert werden kann.

grüße coco07!
 
Zuletzt bearbeitet:
Das mag sein, allerdings wird intern nur eine anonyme Instanz erzeugt und deshalb ähnelt sich dieser Fall. Aber das kannst du natürlich auch nicht wissen.

Grüße coco07
 

Neue Themen


Zurück
Oben