Bonjour,
Je suis en train de développer une application à l'aide d'une API qui utilise une méthode "getEvent()" bloquante.
Une fois qu'il y a un événement, la méthode revoit l'event associé.
Mon but : Attendre qu'un événement se passe, le récupérer, traiter et se remettre en attente.
1ère solution : lancer UN thread qui bloque sur getEvent(), dès que la méthode se débloque (donc le système reçoit un événement), lancer un nouveau thread à partir d'un pool de thread prédéfini (par exemple un pool de 10 threads )qui traitera l'event récupéré et se rebloquera sur le getEvent() à l'intérieur du 1er thread.
Le thread qui a récupéré la réponse du getEvent, une fois terminé, se remet en attente.
2ème solution : lancer un thread unique qui se bloque sur getEvent() et qui traite l'évènement puis se "relance" pour se mettre en attente du getEvent().
la 2ème solution semble "plus facile" mais elle pose un problème si le traitement prend un peu de temps et donc on pourrait manquer des événements...ce qu'on veut éviter.
J'aimerais donc si possible avoir votre aide pour savoir comment mettre en place la 1ère solution, je ne suis vraiment pas habitué à utiliser les Threads.
Très bonne journée,
Merci.
Partager