2010-10-22 16 views

risposta

6

Le code di messaggi sono un modo per risolvere il problema.

Se si desidera alimentare la macchina di stato con eventi esterni da altri thread, è possibile scrivere questi eventi in una coda di messaggi che verrà letta dalla macchina di stato.

Se si desidera che gli altri thread si attivino sulle azioni dalla macchina di stato, è possibile scrivere su varie code di messaggi associate a un thread che leggerà dal suo MQ.

Uno svantaggio è che gli eventi vengono ordinati in ordine cronologico. Se la tua macchina di stato non è in vena di gestire l'evento appena letto dalla coda, devi decidere cosa fare con questo evento: distruggerlo, rimetterlo in coda, ricordarlo per uso futuro ...

+0

Ho letto con interesse il tuo ultimo paragrafo sull'ordine degli eventi. Puoi per caso indicarmi esempi, fonti o articoli sulla manipolazione della coda degli eventi nelle macchine a stati? – BiAiB

5

Forse il quadro Quantum è quello che stai cercando? Vedere http://state-machine.com/ per ulteriori informazioni. Ci sono porte per molti microcontrollori, nonché per linux e windows.

+0

Ciao cigolante Squirrel. Sì, ho anche scoperto questo sito e il suo libro. Interessante ! Grazie. JCLL – JCLL

+0

Utilizzo QF in un ambiente commerciale, sia con che senza thread. All'inizio era imbarazzante, ma ora non riesco a immaginare di scrivere codice critico per la sicurezza in altro modo. A differenza della maggior parte delle implementazioni ad-hoc, QPC è progettato per adattarsi bene senza diventare un grande casino. –

Problemi correlati