Bonjour à tous,
- une application main
- instancie un listener réseau qui est une classe dérivée de thread (mécanisme proposé par le framework que j'utilise)
- enregistre auprès de ce listener des callbacks (des méthodes de différentes classes de l'application)
- démarre le thread listener
- le listener procède à l'écoute, empile les messages reçus et appelle les callbacks
Quels sont les risques ? le code d'une méthode peut se retrouver exécuté aussi bien dans l'application que dans le contexte du thread appelant - Cela peut-il poser des problèmes ? Je pars du principe que le dernier a raison. Si l'application dit "bleu" et que le thread reçoit une commande "rouge", pas de problème, ça sera rouge. Mais l'accès aux classes, à leurs méthodes peut-il provoquer des crashs ? une instabilité ?
Si oui, sachant que le listener peut appeler des dizaines de méthodes (via les callbacks) de classes de l'application, comment se prémunir des conflits ? Le listener peut aisément utiliser un 'lock' avant d'appeler le callback, mais du côté de l'appli ? Je ne peux quand même pas pourrir mon code et mettre des verrous partout, pour la moindre opération, au cas où le thread tenterait d'accéder aux même données...
C'est un peu le brouillard ;-)
Partager