状态机分析

状态机是一种描述事物在有限状态间转换的模型。关键术语包括:state(状态)、action(动作/事件)、transition(转换)和transitionstate(转换条件)。文章通过汽车、电风扇和Java线程状态机以及密码柜等实例,深入浅出地解释了状态机的工作原理和应用。
摘要由CSDN通过智能技术生成

写在前面

状态机是指某事物具有有限状态,且在这些状态之间相互转换的抽象,比如门的开是一个状态,关又是一个状态。本文就一起来看下。

1:状态机的术语

1.1:state

状态,即当前所处的状态,如汽车是熄火的(熄火的就是汽车所处的state),汽车是发动的(发动的就是汽车所处的state)

1.2:action

动作,或者叫做事件,来将事物从一个状态转换为另外一个状态。比如当前汽车是熄火的,则可以通过点击start按钮这个action来发动汽车。

1.3:transition

当有了action后,事物从一个状态转换为另外一个状态的过程就叫做transition,所以transition是对一个状态变化过程的描述。

1.4:transition state

当有了action,事物并非直接就会执行transition来从一个状态转换为另外一个状态,而是需要满足一定的条件,这个条件就是transition state,比如通过点击start按钮这个动作action来发动汽车,如果你的指纹不对,是没有办法发动汽车的,这里的你的指纹匹配系统录入的指纹就是transition state。伪代码的话就像下边这样:

void action(String action, String transitionState) {
    if (判断transitionState正确) {
        // 执行transition,完整状态装换
        doTransansition(action);
    }
}

2:实例

如下电风扇使用状态机来表示:

在这里插入图片描述

在这里插入图片描述

Java 线程状态机表示:

在这里插入图片描述

密码柜使用状态机表示:

在这里插入图片描述

密码柜例子,程序实现参考这里 。运行结果如下:

在这里插入图片描述

写在后面

参考文章列表

超清晰的java线程状态机图

什么是状态机?一篇文章就够了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值