"状态机轮询构架和状态机事件驱动构架"
这个话题以前有人讨论过,实质是轮询与调度之间的孰优孰劣问题。
轮询以状态机为主,用状态机来消化事件和消息,调度以事件为主,把事件分发给相应的消息处理状态机。
实际上两者是统一的,都是事件(或消息)驱动的编程架构。只不过是处理事件的实时性不同。
对于不需要实时处理的事件,可以用状态机轮询的方式来处理,事件被延时处理的时间就是轮询的时间;对于需要实时处理的事件,则需要用事件调度的方式,只要该类事件发生,马上分发给事件处理状态机去处理,这实质上也是合作式调度器和占先式调度器的区别,轮询是合作式调度,事件驱动是占先式调度。 |
|