Equinox Geschrieben December 23, 2013 at 11:01 Geschrieben December 23, 2013 at 11:01 Hallo, wenn ich in Java mehrere Listener registriere, z.B. für Humidity und Temperature, wieviele davon können gleichzeitig die Events abarbeiten? Immer nur einer?Einer pro Bricklet?Unbegrenzt? Falls nur einer (egal welche Variante), was passiert mit dem Event, das während der Abarbeitung des Callbacks eintrifft? Wird dies "gepuffert" und dann anschließend ausgeführt oder geht das verloren? Und heißt das dann, dass man größere Aktionen in einem Callback in einen eigenen Thread auslagern sollte? Vielen Dank! Zitieren
remotecontrol Geschrieben December 23, 2013 at 12:42 Geschrieben December 23, 2013 at 12:42 Hallo Equinox, die IPConnection hat eine Callback-Queue, die in einem eigenen Thread abgearbeitet wird. Aus dieser Queue wird immer ein Callback nach dem anderen aufgerufen. Wenn also mehrere Bricklets Callbacks senden werden die in eine Queue gepackt (und damit indirekt serialisiert), aber asynchron zu Deiner Anwendung aufgerufen. Um die Queue nicht zu lange zu blockieren solltest Du länger laufende Aktionen in einem eigenen Thread auslagern. Auch muss man aufpassen, wenn im Listener Aktionen aufgerufen werden, die wieder auf den Aufruf eines Callbacks/Listeners warten: das kann zum Deadlock führen ... Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.