Hallo,
gegeben sind mehrere SocketThreads (Multiuser), die jeweils einen WorkerThread starten. Kommuniziert wird über zwei LinkedBlockingQueues.
Ablauf: SocketThread bekommt Daten -> Daten werden weitergereicht an Worker über Queue -> Worker verarbeitet die Daten schickt das Ergebnis über den anderen Queue zum SocketThread zurück.
Jetzt kommt das Problem:
Da der read auf dem Socket immer blockierend ist, kann ich natürlich den Queue nur dann lesen, wenn der Client neue Daten schickt, was niemals passiert, wenn der Queue nicht gelesen werden kann und der Client keine Antwort bekommt.
Hoffe meine Erklärung ist soweit verständlich.
Wie kann ich dieses Problem umgehen? Gibt es sowas wie eine Best Practise für dieses Problem?
Gruß
gegeben sind mehrere SocketThreads (Multiuser), die jeweils einen WorkerThread starten. Kommuniziert wird über zwei LinkedBlockingQueues.
Ablauf: SocketThread bekommt Daten -> Daten werden weitergereicht an Worker über Queue -> Worker verarbeitet die Daten schickt das Ergebnis über den anderen Queue zum SocketThread zurück.
Jetzt kommt das Problem:
Da der read auf dem Socket immer blockierend ist, kann ich natürlich den Queue nur dann lesen, wenn der Client neue Daten schickt, was niemals passiert, wenn der Queue nicht gelesen werden kann und der Client keine Antwort bekommt.
Hoffe meine Erklärung ist soweit verständlich.
Wie kann ich dieses Problem umgehen? Gibt es sowas wie eine Best Practise für dieses Problem?
Gruß
Zuletzt bearbeitet: