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