c - 事件驱动的有限状态机 + 线程 : how to?

标签 c embedded

我想按照此处的建议在 C 中为事件驱动的有限状态机建模: http://en.wikipedia.org/wiki/Event-driven_finite_state_machine

但我也希望在各种线程中处理“外部”事件。

我能在某处找到这样的代码吗?或建议?

最佳答案

消息队列是解决您问题的一种方式。

如果您想为您的状态机提供来自其他线程的外部事件,它们可以将这些事件写入一个消息队列中,该消息队列将由您的状态机读取。

如果您希望其他线程触发来自您的状态机的操作,它可以写入各种消息队列,每个消息队列都关联到一个线程,该线程将从其 MQ 中读取。

一个缺点是事件按时间顺序排序。如果你的状态机不想处理它刚刚从队列中读取的事件,你必须决定如何处理这个事件:销毁它,将它放回队列,记住它以备将来使用......

关于c - 事件驱动的有限状态机 + 线程 : how to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995096/

相关文章:

c - 在 c 中连接多个字符串的更好方法?

c - 与 write() 函数相关的意外行为

c - 是否有嵌入式 c 在串行闪存上使用外部字符串资源的现成解决方案?

c - pycparser AST 节点指针/位置

c++ - 现代 C 和 C++ : it is possible to use one defined structure for other declared structure?

C编程UART函数不兼容指针类型

linux - 笔驱动控制

linux - 我如何在 linux 中找到 GPIO 的定义,尤其是对于 beaglebone black?

c - Linux 编程 - 先进先出

c - 如何从位于/usr/include 的 Linux 头文件中获取函数名称