Servus,
Ich hätte mal wieder eine Frage:
Ich habe einen Server-Thread, der mir Daten produziert und einen Client der diese dann abholt. Das ganze funktioniert mittlels einer eigenen Queue, die intern eine ArrayBlockingQueue verwendet.
Bricht jetzt während des Produzierens der Client weg, produziert der Server bis die Queue voll ist (ich verwende put zum belegen) und dann steht er im await() der ArrayBlockingQueue.
Damit meine Queue irgendwann garbageCollected werden kann hab ich sie nur weak referenziert.
Wird diese nun tatsächlich irgendwann collected, bleibt die interne ArrayBlockingQueue aber stehen und ebenso der Server-Thread.
kann ich irgendwie dafür sorgen, dass sowohl die ArrayBlockingQueue als auch mein ProducerThread aufgeräumt werden ohne dass ich von put abweiche?
Vielen Dank schon mal
Ich hätte mal wieder eine Frage:
Ich habe einen Server-Thread, der mir Daten produziert und einen Client der diese dann abholt. Das ganze funktioniert mittlels einer eigenen Queue, die intern eine ArrayBlockingQueue verwendet.
Bricht jetzt während des Produzierens der Client weg, produziert der Server bis die Queue voll ist (ich verwende put zum belegen) und dann steht er im await() der ArrayBlockingQueue.
Damit meine Queue irgendwann garbageCollected werden kann hab ich sie nur weak referenziert.
Wird diese nun tatsächlich irgendwann collected, bleibt die interne ArrayBlockingQueue aber stehen und ebenso der Server-Thread.
kann ich irgendwie dafür sorgen, dass sowohl die ArrayBlockingQueue als auch mein ProducerThread aufgeräumt werden ohne dass ich von put abweiche?
Vielen Dank schon mal