Jump to content

Recommended Posts

Geschrieben

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!

Geschrieben

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 ...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...