Newsgroup Archiv - Beiträge

auf www.Bastie.de

GC eines derefenzierten Objekts mit Thread

Frager: Bernd Zeitler vom: Mittwoch, 20. Dezember 2000
Ein Objekt instanziiert einen Thread als Daemon (von einer inneren Klasse der Objektklasse) und startet diesen. Nun angenommen dieses Objekt wird komplett derefenziert, was normalerweise den GC veranlasst, alle von diesem Objekt belegten Ressourcen freizugeben. Nun die Fragen (für Version 1.2.2 oder 1.3, falls Unterschiede bestehen!):
Gibt der GC die Ressourcen von diesem Objekt frei (obwohl der Thread noch läuft)? Läuft der Thread weiterhin?
Bernd
1. Antwort: Markus Riehl vom: Mittwoch, 20. Dezember 2000
Hi Bernd,
das lässt sich schnell selbst testen, aber der Thread wird erst nach seiner Beendigung entfernt. Wenn der Thread eine Endlosschleife enthält bleibt der Thread im Speicher. Ich glaube nicht dass es dabei Unterschiede in den einzelnen Java-Versionen gibt.
Viele Grüße,
Markus
2. Antwort: Thomas Foerster vom: Mittwoch, 20. Dezember 2000
> "Ein Objekt instanziiert einen Thread als Daemon (von einer inneren Klasse der Objektklasse) und startet diesen. Nun angenommen dieses Objekt wird komplett derefenziert, was normalerweise den GC veranlasst,"
Dereferenziert? Du meinst alle [für Dich sichtbaren] Referenzen sind gelöscht.
> "alle von diesem Objekt belegten Ressourcen freizugeben. Nun die Fragen (für Version 1.2.2 oder 1.3, falls Unterschiede bestehen!):
Gibt der GC die Ressourcen von diesem Objekt frei (obwohl der Thread noch läuft)? Läuft der Thread weiterhin?"
Der läuft auch weiterhin. Die VM hebt alle laufenden Threads in ThreadGroups auf. Erst wenn sie beendet sind, können sie auch entfernt werden.
Thomas

zur Übersicht

all rights reserved © Bastie - Sebastian Ritter @: w³: http://www.Bastie.de
Diese Seite ist Bestandteil der Internetpräsenz unter http://www.Bastie.de


Java Cobol Software Resourcen Service Links Über mich Zum Gästebuch Forum