T
tuxedo
Gast
Hallo zusammen,
nachdem in meinem letzten Thread "Zur Laufzeit erben" das Thema etwas ausseinander gelaufen ist, hier ein neuer Thread:
Also mir gehts gerade generell um das Verständnis der Weakreference bzw. auch Phantomreferences.
Ich habe eine Klasse A, welche Referenzen zu Klasse B und C hat. In etwa so:
So. Klasse B und C sind im Programm (unabhängig von A, sprich Klasse D benutzt B unc C auch noch und läuft als Thread oder so) weiter verknüpft und hängen unter anderem mit Threads und Netzwerkverbindungen zusammen.
Wenn ich jetzt möchte, dass wenn Klasse A nicht mehr erreichbar ist (also nirgendwo im Code mehr benutzt wird), Klasse A aufgeräumt wird:
Macht es dann Sinn die in Klasse A internen Referenzen auf B und C in WeakReferences zu packen?
Nach gründlicher Überlegung würde ich sagen: Nein. Wenn dann müsste ich die Instanz der Klasse A selbst in eine WeakReference packen.
Kann mich da mal jemand aufklären der damit schon gearbeitet hat? Hab so langsam aber sicher nen Knoten im Hirn ...
- Alex
edit: Hintergrund ist folgender: Wenn Klasse A nicht mehr "reachable" ist, also nirgends mehr im folgenden Code benutzt wird, dann möchte ich auf irgend eine Art und Weise benachrichtigt werden (polling in einem Thread geht auch), damit ich Klasse B und C sagen kann, dass die Netzwerkverbindung beendet und die Threads heruntergefahren werden.
nachdem in meinem letzten Thread "Zur Laufzeit erben" das Thema etwas ausseinander gelaufen ist, hier ein neuer Thread:
Also mir gehts gerade generell um das Verständnis der Weakreference bzw. auch Phantomreferences.
Ich habe eine Klasse A, welche Referenzen zu Klasse B und C hat. In etwa so:
Code:
class A {
private B b = null;
private C c = null;
public A (B b, C c){
this.b=b;
this.c=c;
}
}
So. Klasse B und C sind im Programm (unabhängig von A, sprich Klasse D benutzt B unc C auch noch und läuft als Thread oder so) weiter verknüpft und hängen unter anderem mit Threads und Netzwerkverbindungen zusammen.
Wenn ich jetzt möchte, dass wenn Klasse A nicht mehr erreichbar ist (also nirgendwo im Code mehr benutzt wird), Klasse A aufgeräumt wird:
Macht es dann Sinn die in Klasse A internen Referenzen auf B und C in WeakReferences zu packen?
Nach gründlicher Überlegung würde ich sagen: Nein. Wenn dann müsste ich die Instanz der Klasse A selbst in eine WeakReference packen.
Kann mich da mal jemand aufklären der damit schon gearbeitet hat? Hab so langsam aber sicher nen Knoten im Hirn ...
- Alex
edit: Hintergrund ist folgender: Wenn Klasse A nicht mehr "reachable" ist, also nirgends mehr im folgenden Code benutzt wird, dann möchte ich auf irgend eine Art und Weise benachrichtigt werden (polling in einem Thread geht auch), damit ich Klasse B und C sagen kann, dass die Netzwerkverbindung beendet und die Threads heruntergefahren werden.