状态机分析

news2024/10/1 19:40:00

写在前面

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

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线程状态机图 。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/352789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电子技术——内部电容效应以及MOS与BJT的高频响应模型

电子技术——内部电容效应以及MOS与BJT的高频响应模型 耦合和旁路电容决定了放大器的低频响应,同时内部电容效应决定了放大器的高频响应。本节,我们简单简单介绍一下内部电容效应,并且更重要的是如何在小信号模型中模型化内部电容效应。 MOS…

C语言操作符经典例题

一、选择题 1、下面哪个是位操作符:( ) A.& B.&& C.|| D.! 答案解析: 答案:A A正确,&——按(二进制)位与,对应的二进制位:有0则0&#…

将python代码封装成c版本的dll动态链接库

前言 将python程序打包成DLL文件,然后用C调用生成的DLL文件,这是一种用C调用python的方法,这一块比较容易遇到坑。网上关于这一块的教程不是很多,而且大部分都不能完全解决问题。我在傻傻挣扎了几天之后,终于试出了一个…

第八章认识 Vue.js基础

vue.js 是一套用于构建用户界面的渐进式前端框架 vue.js 核心实现: 相应式的数据绑定:当数据发生改变,视图可以自动更新,不用关心DOM操作,而转型数据库操作 可组合的视图组件:把视图按照功能切分成若干的…

vr电力刀闸事故应急演练实训系统开发

电力事故是在电力生产和输电过程中可能发生的意外事件,它们可能会对人们的生命财产安全造成严重的威胁。因此,电力事故应急演练显得尤为重要。而VR技术则可以为电力事故应急演练提供一种全新的解决方案。 在虚拟环境中,元宇宙VR会模拟各种触电…

07 react+echart+大屏

reactechart大屏大屏ECharts 图表实际步骤React Typescript搭建大屏项目,并实现屏幕适配flexible rem实现适配1. 安装插件对echarts进行的React封装,可以用于React项目中,支持JS、TS如何使用完整例子官网参考大屏 ECharts 图表 ECharts 图…

【Java基础】泛型(二)-泛型的难点:通配符

本文将尝试将通配符和泛型中的继承,多态一并讲解 关于泛型中继承的注意事项 因为Integer、Double继承了Number,根据多态性,以下语句是合法的 Number n new Integer(10); // OK, 父类引用变量可以指向子类对象 n 2.9 // OK,n实…

Mac-Charles

Charles是什么 HTTP代理服务器,HTTP监视器 Charles可以当作一个代理服务器 当浏览器链接这个代理服务器的时候 Charles会监控浏览器发出和接收的所有数据(reques,response,HTTP Headers(cookies和cash)) 反转代理器 Charles主要功能、 1.SSL代理 2.模拟慢速网络…

双目立体视觉:SAD算法

算法原理SAD(Sum of absolute differences)是一种图像匹配算法。基本思想:差的绝对值之和。此算法常用于图像块匹配,将每个像素对应数值之差的绝对值求和,据此评估两个图像块的相似度。该算法快速、但并不精确,通常用于多级处理的…

如何在Power Virtual Agents中实现身份验证

今天我们介绍一下如何通过身份验证的方式来使用Power Virtual Agents。首先进入“Microsoft 365-管理-Azure Active Directory管理中心”。 进入“Azure Active Directory管理中心”后选择“Azure Active Directory”中的“应用注册”-“新注册”。 输入新创建的应用程序名称后…

XXL-JOB分布式任务调度框架(一)-基础入门

文章目录1.什么是任务调度2.常见定时任务方案2.1. 传统定时任务方案示例2.2. 缺点分析3.什么是分布式任务调度?3.1. 并行任务调度3.2. 高可用3.3. 弹性扩容3.4. 任务管理与监测4.市面上常见的分布式任务调度产品5.初识xxl-job6.xxl-job架构设计6.1.设计思想6.2.架构…

程序人生 - 学习和分享

文章目录记于 230217学习安排泛学AI 和 未来记于 230217 刚入行时,经常看到技术博客中,博主们分享生活,比如相亲、上班生活,甚至还有人发结婚照。这个栏目通常被称为:程序人生。 这个现象已经很久没看到了&#xff0c…

BFC 是什么

在页面布局的时候,经常出现以下情况: 这个元素高度怎么没了?这两栏布局怎么没法自适应?这两个元素的间距怎么有点奇怪的样子?...... 原因是元素之间相互的影响,导致了意料之外的情况,这里就涉及…

吴恩达深度学习笔记(八)——卷积神经网络(上)

一、卷积相关 用一个ff的过滤器卷积一个nn的图像,假如padding为p,步幅为s,输出大小则为: [n2p−fs1][n2p−fs1][\frac{n2p-f}{s}1][\frac{n2p-f}{s}1][sn2p−f​1][sn2p−f​1] []表示向下取整(floor) 大部分深度学习…

Unreal Engine04:Visual Studio和Editor的协同开发

写在前面 这里主要是记录一下Visual Studio和Editor之间的关系和如何使用它们进行UE4协同开发。 一、启动 1. 先启动Visual Studio再启动Editor (1) 打开项目根目录下的xxx.sln解决方案,即可启动Visual Studio,这个是和普通的C项目打开方式相同的&…

2023美国大学生数学建模竞赛C题思路解析(含代码+数据可视化)

以下为2023美国大学生数学建模竞赛C题思路解析(含代码数据可视化)规则:猜词,字母猜对,位置不对为黄色,位置对为绿色,两者皆不对为灰色。困难模式下的要求:对于猜对的字母&#xff08…

RBAC权限模型

什么是RBAC权限模型? RBAC是基于角色的访问控制,在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。 1.0级 用户、角色、权限 2.0 权限分级 公司>部门>小组 2.1 权限继承 ps: 这个人是一个小组长…

Java调用Selenium实现自动化测试

Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。 Selenium简介 Selenium是一个用于Web应用…

Spring MVC 之Tomcat启动流程

从web.xml说起在开始 Spring MVC 的分析之前,先来聊一聊 Java 初学者接触的最多的 Java Web 基础。还记得我的第一个 Web 工程是由 Servlet、Velocity 和 Filter 来完成的,那时几乎所有人都是根据 Servlet、JSP 和 Filter 来编写自己的第一个 Hello Worl…

Java基本语法

目录 一、注释方式 1、单行注释 // 2、多行注释 /*...*/ 3、文档注释 /**....*/ 二、标识符和关键字 三、数据类型 拓展及面试题讲解 1、整数拓展 进制 二进制0b 八进制0 十六进制0x 2、字符拓展 编码Unicode表 2字节 0~65536 3、字符串拓展 4、布尔值拓展 一、注释方式…