状态机是有限自动状态机,是现实事物运行规则抽象而成的一个数学模型
状态机(state machine),不是指一个机器,而是一个数学模型,一张状态转化图。如自动门的状态转化图
自动门有两个状态,open和closed,在closed状态下如果读取关门信号,状态就会切换为closed。
状态机的全称是有限状态自动机,自动两个字也是包含重要含义的。给定一个状态机,同时给定它的当前状态以及输入,那么输出状态时可以明确的运算出来的。例如对于自动门,给定初始状态 closed ,给定输入“开门”,那么下一个状态时可以运算出来的。
状态机有4大概念
第一个是state,状态。一个状态机至少要包含两个状态。如close和open
第二个是event,事件。事件就是执行某个操作的触发条件或口令。如对自动门,按下开门按钮就是一个事件
第三个是action,动作。事件发生以后要有动作。如事件是按开门按钮,动作是开门。一般一个action对应一个函数。
地四个是transition,变换。也就是从一个状态变化为另一个状态。如开门的过程就是一个变换。
应用
状态机是一个对真实世界的抽象,而且是逻辑严谨的数学抽象,所以明显非常适合用在数字领域。可以应用到各个层面上,例如硬件设计,编译器设计,以及编程实现各种具体业务逻辑的时候。
总结
状态机不是实际机器设备,而是一个数学模型,通常体现为一个状态转换图。涉及到的相关概念是 State 状态,Event 事件,Action 动作,Transition 转换。