有限状态机——逻辑单元内部的一种高效编程方法。
有的应用层协议头部包含数据包类型字段,每种数据类型可以映射为逻辑单元的一种执行状态,服务器可以根据它来编写相应的处理逻辑
该状态机的每个状态都是相互独立的,状态之间没有相互转移。
state_machine(Package _pack) { PackageType _type=_pack.getType(); switch(_type) { case type_A: process_package_A(_pack); break; case type_B: process_package_B(_pack); break; } }
状态的转移需要状态机的内部驱动
STATE_MACHINE() { State curState=type_A; while(curState!=type_C) { Package _pack=getNewPackage(); switch(curState) { case type_A: process_package_state_A(_pack); curState=type_B; break; case type_B: process_package_state_B(_pack); curState=type_C; break; } } }
原文:https://www.cnblogs.com/tianzeng/p/10780933.html