我想按照此处的建议在 C 中为事件驱动的有限状态机建模: http://en.wikipedia.org/wiki/Event-driven_finite_state_machine
但我也希望在各种线程中处理“外部”事件。
我能在某处找到这样的代码吗?或建议?
最佳答案
消息队列是解决您问题的一种方式。
如果您想为您的状态机提供来自其他线程的外部事件,它们可以将这些事件写入一个消息队列中,该消息队列将由您的状态机读取。
如果您希望其他线程触发来自您的状态机的操作,它可以写入各种消息队列,每个消息队列都关联到一个线程,该线程将从其 MQ 中读取。
一个缺点是事件按时间顺序排序。如果你的状态机不想处理它刚刚从队列中读取的事件,你必须决定如何处理这个事件:销毁它,将它放回队列,记住它以备将来使用......
关于c - 事件驱动的有限状态机 + 线程 : how to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995096/