Jump to content

[Java] Wieviele Callbacks gleichzeitig?


Equinox

Recommended Posts

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!

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...