Ich habe ein Objekt, das Verweise auf 2 Daemon-Threads enthält. Ich denke über den Eckfall nach, in dem es nicht deinitialisiert wird, also kann ich bestimmen, ob ich einen Finalizer benötige. Die Funktion zum Deinitialisieren beendet die Threads. Ich könnte weitermachen und nur einen Finalizer hinzufügen, aber ich bin neugierig:Garbage Collection eines Objekts, das Verweis auf lebendige Threads enthält
Kann das Objekt erhält Müll gesammelt, während die oben genannten Fäden am Leben sind?
Wenn es Müll sammeln kann, werden die Threads unterbrochen?
Nun, im Normalfall würde der Benutzer ordnungsgemäß trennen() - und die Threads (die mit I/O befassen) würde gestoppt werden. Ich dachte über den Fall nach, in dem die Trennung nicht richtig gemacht wird. – shikhar
Dann sollten Sie mit gehen, lassen Sie mich nachdenken, ... Keepalive Checks? Nach einem Timeout von "no response" wird der Thread beendet. Weil dies im Vergleich zu GC sehr deterministisch wäre. –
können Sie das ausarbeiten? "keine Antwort" von? Übrigens, hier ist der Code: http://code.google.com/p/commons-net-ssh/source/browse/src/main/java/org/apache/commons/net/ssh/trans/Transport.java # 80 – shikhar