Hi,
um Aufgenommenes oder live Gesprochenes zu verarbeiten, habe ich ein Thread der die Daten in eine LinkedBlockingQueue schreibt und ein anderer Thread verarbeitet alles was da drin ist nach und nach. Mein Problem besteht jetzt darin, wie ich das ganze sinnvoll stoppen kann. Bisher warte ich ich mit LinkedBlockingQueue.take() bis wieder Daten drinstehen, solang auch noch was nachkommt ist das kein Problem, nur wenn die Aufnahme zuende ist oder eben abgebrochen wird, bleibt take() im blockierenden Modus. Mir fällt auch grad nichts anderes ein wie ich es machen soll, bis die BlockingQueue wegzulassen und immer wenn der eine Thread Daten reinschreibt ein notify() zu machen.
Meint ihr das ist sinnvoll oder kennt ihr eine bessere Möglichkeit?
um Aufgenommenes oder live Gesprochenes zu verarbeiten, habe ich ein Thread der die Daten in eine LinkedBlockingQueue schreibt und ein anderer Thread verarbeitet alles was da drin ist nach und nach. Mein Problem besteht jetzt darin, wie ich das ganze sinnvoll stoppen kann. Bisher warte ich ich mit LinkedBlockingQueue.take() bis wieder Daten drinstehen, solang auch noch was nachkommt ist das kein Problem, nur wenn die Aufnahme zuende ist oder eben abgebrochen wird, bleibt take() im blockierenden Modus. Mir fällt auch grad nichts anderes ein wie ich es machen soll, bis die BlockingQueue wegzulassen und immer wenn der eine Thread Daten reinschreibt ein notify() zu machen.
Meint ihr das ist sinnvoll oder kennt ihr eine bessere Möglichkeit?