我想在C中建模一个事件驱动的有限状态机,如下所示:http: //en.wikipedia.org/wiki/Event-driven_finite_state_machine
但我也希望在各种线程中处理"外部"事件.
我可以在某个地方找到这样的代码吗?还是建议?
消息队列是解决问题的一种方法.
如果要向状态机提供来自其他线程的外部事件,则可以将这些事件写入将由状态机读取的消息队列中.
如果您希望其他线程触发来自状态机的操作,它可以写入各种消息队列,每个消息队列都与将从其MQ读取的线程相关联.
一个缺点是事件按时间顺序排序.如果你的状态机没有处理它只是从队列中读取的事件的心情,你必须决定如何处理这个事件:销毁它,把它放回队列,记住它以备将来使用......