2010-10-22 6 views

Répondre

6

Les files d'attente de messages sont un moyen de résoudre votre problème.

Si vous souhaitez alimenter votre machine d'état avec des événements externes provenant d'autres threads, ils peuvent écrire ces événements dans une file d'attente de messages qui sera lue par votre machine d'état.

Si vous souhaitez que d'autres threads se déclenchent sur les actions de votre machine d'état, il peut écrire dans différentes files d'attente de messages associées chacune à un thread qui lira à partir de sa MQ. Un inconvénient est que les événements sont classés par ordre chronologique. Si votre machine d'état n'est pas dans l'ambiance de gérer l'événement, il suffit de lire la file d'attente, vous devez décider quoi faire avec cet événement: détruisez-le, remettez-le en attente, souvenez-vous pour un usage futur ...

+0

J'ai lu avec intérêt votre dernier paragraphe sur l'ordre des événements. Pouvez-vous par hasard me diriger vers des exemples, des sources ou des articles sur la manipulation de la file d'attente d'événements dans les machines d'état? – BiAiB

5

Peut-être que le cadre Quantum est ce que vous cherchez? Voir http://state-machine.com/ pour plus d'informations. Il existe des ports pour de nombreux microcontrôleurs ainsi que pour Linux et Windows.

+0

Salut grinçantSquirrel. Oui, j'ai aussi découvert ce site et son livre. Intéressant ! THX. JCLL – JCLL

+0

J'ai utilisé QF dans un environnement commercial, avec ou sans threads. C'était gênant au début, mais maintenant je ne peux pas imaginer écrire du code critique de sécurité d'une autre manière. Contrairement à la plupart des implémentations ad hoc, QPC est conçu pour évoluer correctement sans devenir un gros désordre. –

Questions connexes