我想這裏提出一種事件驅動的有限狀態機在C型: http://en.wikipedia.org/wiki/Event-driven_finite_state_machine事件驅動的有限狀態機+線程:如何?
但我也想在「外部」事件在不同的線程來處理。
我能找到這樣的代碼什麼地方?或者建議?
我想這裏提出一種事件驅動的有限狀態機在C型: http://en.wikipedia.org/wiki/Event-driven_finite_state_machine事件驅動的有限狀態機+線程:如何?
但我也想在「外部」事件在不同的線程來處理。
我能找到這樣的代碼什麼地方?或者建議?
消息隊列是解決您的問題的一種方法。
如果你想與其他線程的外部事件來養活你的狀態機,他們可以寫在將你的狀態機來讀取一個消息隊列這些事件。
如果您想獲得其他線程觸發從狀態機的動作,它可以寫入每個對應一個線程,該線程將其讀取MQ各種消息隊列。
一個缺點是,事件被按時間順序進行排序。如果你的狀態機沒有處理事件的心情,它只是從隊列中讀取,你必須決定如何處理這個事件:銷燬它,把它放回隊列,記住它以備將來使用......
也許量子框架是你在找什麼?更多信息請參見http://state-machine.com/。有許多微控制器以及Linux和Windows的端口。
嗨,吱吱聲松鼠。是的,我也發現了這個網站和它的書。有趣!謝謝。 JCLL – JCLL 2010-10-26 11:33:36
我一直在商業環境中使用QF,無論是否有線程。起初它很尷尬,但現在我無法想象用其他方式編寫安全關鍵代碼。與特定的大多數實現不同,QPC的設計可以很好地擴展而不會變得很糟糕。 – 2013-01-24 20:08:50
我感興趣地閱讀了關於事件順序的最後一段。你有沒有機會將我指向關於在狀態機中操縱事件隊列的例子,源文件或文章? – BiAiB 2013-03-21 16:01:16