markdown mermaid状态图
状态图
状态图是一种用于计算机科学和相关领域描述系统行为的图。状态图要求描述的系统由有限数量的状态组成。
语法:
stateDiagram-v2
[*] --> Still
Still --> [*]
Still --> Moving:push
Moving --> Still:摩擦
Moving --> Crash:速度过快
Crash --> [*]
[*] --> Still
Still --> [*]
Still --> Moving:push
Moving --> Still:摩擦
Moving --> Crash:速度过快
Crash --> [*]
在状态图中,展示了系统有那些状态,以及状态之间相互转换的。 上面的示例图显示了 Still、Moving
和 Crash
三种状态。 可以将Still
状态 更改为 Moving
。 也可以将Moving
状态更改回Still
或Crash
。 但无法从Still
过度到Crash
状态。
- 状态
可以通过多种方式声明一个状态。 最简单的方法是状态定义是通过 id 。
stateDiagram-v2
id
id
定义状态的另一种方法是,状态id后接冒号和描述。
stateDiagram-v2
S:开始
R:运行
W:等待
S-->R:start()
R-->W:wait()
W-->R:notify(),nofityAll()
S:开始
R:运行
W:等待
S-->R:start()
R-->W:wait()
W-->R:notify(),nofityAll()
id:des :状态id:状态详细
如果状态比较长,并且要多次引用,可以用此种方式,可以减少敲打键盘的的次数。
- 过渡:状态转换
当一种状态进入另一种状态时,通过过渡转换。 这使用文本箭头-->
表示。
stateDiagram-v2
状态1 --> 状态2
状态1 --> 状态2
可以向过渡中添加文本。描述它代表什么。
stateDiagram-v2
new-->Runable:start()
new-->Runable:start()
- 开始和结束
有两种特殊状态指示图,开始和停止。 可以用 [*]
语法表示开始或停止状态。
stateDiagram-v2
[*] --> 运行
s1 --> [*]
s1:运行
[*] --> s1
s1 --> [*]
例子:
Java线程状态图:
stateDiagram-v2
New-->Runnable:start()
Runnable-->Waiting:wait()
Waiting-->Runnable:notify(),notifyAll()
TimedWaiting-->Runnable:sleep()结束
Runnable-->TimedWaiting:sleep()开始
Blocked-->Runnable:synchronized
Runnable-->Blocked:synchronized
Runnable-->Terminated:run()结束
New-->Runnable:start()
Runnable-->Waiting:wait()
Waiting-->Runnable:notify(),notifyAll()
TimedWaiting-->Runnable:sleep()结束
Runnable-->TimedWaiting:sleep()开始
Blocked-->Runnable:synchronized
Runnable-->Blocked:synchronized
Runnable-->Terminated:run()结束
markdown mermaid状态图的更多相关文章
- Markdown Mermaid
Mermaid 是一个用于画流程图.状态图.时序图.甘特图的库,使用 JS 进行本地渲染,广泛集成于许多 Markdown 编辑器中. 之前用过 PlantUML,但是发现这个东西的实现原理是生成 U ...
- markdown mermaid序列图
序列图(时序图) 序列图是一种交互图,它显示了进程如何相互操作以及按什么顺序操作. sequenceDiagram participant l as 大灰狼 participant y as 小羊 l ...
- markdown mermaid流程图
流程图 所有流程图都由节点.几何图像.箭头或线条组成. mermaid代码定义了这些节点和边的制作和交互方式.可以有不同的箭头类型.多向箭头以及与子图的连接. 节点 节点 flowchart LR i ...
- 我画着图,FluentAPI 她自己就生成了
在 Newbe.ObjectVistor 0.3 版本中我们非常兴奋的引入了一个紧张刺激的新特性:使用状态图来生成任意给定的 FluentAPI 设计. 开篇摘要 在非常多优秀的框架中都存在一部分 F ...
- Markdown中使用mermaid画流程图
Markown语法简单,用来写文档是个不错的选择. 但是Markdown 语法并不直接支持画图,当然方法还是有的. 本人用的Markdown编辑器为vscode,在里面直接安装merdaid插件即可使 ...
- markdown绘图插件----mermaid简介
作者:黄永刚 mermaid简介 当撰写文档的时候,对于流程图的生成大多使用Visio等繁重的工具,没有一种轻便的工具能够画图从而简化文档的编写,就像markdown那样. mermaid解决这个痛点 ...
- Markdown教程<2> mermaid图形绘制(1)
Markdown教程<2> mermaid图形绘制(1) 博客园中的markdown编辑器同时支持mermaid图表引擎与tex公式引擎,可以使用mermaid直接画出流程图,时序图,甘特 ...
- 画图前端:mermaid。时序图/类图/甘特图/流程图/状态图/饼图。类似工具:Typora
文档 https://mermaidjs.github.io/#/ cdn https://www.bootcdn.cn/mermaid/ 在线编辑 https://mermaidjs.github. ...
- Markdown画图(mermaid)学习
简介 目前博客园支持mermaid的graph,subgraph,sequenceDiagram,gantt,classDiagram mermaid(美人鱼), 是一个类似markdown,用文本语 ...
随机推荐
- 转: iPhone屏幕尺寸、分辨率及适配
1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS ...
- 自定义日历(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 日历有三种:标准日历.24小时日历和夜班日历. 但这三种在现实中远远不够用,别的不说,就说那个标准日历,默认是8点到12点 ...
- CF253A Boys and Girls 题解
Content 有 \(n\) 个男生.\(m\) 个女生坐在一排,请求出这样一种方案,使得相邻两个座位之间的人的性别不同的次数最多. 数据范围:\(1\leqslant n,m\leqslant 1 ...
- java 编程基础 反射方式获取泛型的类型Fileld.getGenericType() 或Method.getGenericParameterTypes(); (ParameterizedType) ;getActualTypeArguments()
引言 自从JDK5以后,Java Class类增加了泛型功能,从而允许使用泛型来限制Class类,例如,String.class的类型实际上是 Class 如果 Class 对应的类暂时未知,则使 C ...
- 网络编程socket 结合IO多路复用select; epool机制分别实现单线程并发TCP服务器
select版-TCP服务器 1. select 原理 在多路复用的模型中,比较常用的有select模型和epoll模型.这两个都是系统接口,由操作系统提供.当然,Python的select模块进行了 ...
- mysql如何查询某个库,某个表都有哪些字段
如下语句便可查看 SELECT column_name FROM Information_schema.columns WHERE table_Name = 'columns' AND TABLE_ ...
- C++实现反射---RTTR库的使用
使用过C#或者Java 的童鞋,应该对这些语言提供的反射机制有所了解.所谓反射,在我看来就是在只知道一个类的名字(字符串形式)的情况下,自动创建出具体的类实例,并且能够枚举该类型拥有的属性.方法等信息 ...
- Hibernate使用distinct返回不重复的数据,使用group by 进行分组
//distinct使用 public List<String> distinctDutyDate() { String hql="select distinct(dutyDat ...
- Linux C++获取磁盘剩余空间和可用空间
完整源码 #include <sys/statfs.h> #include <string> #include <iostream> #include <li ...
- ubuntu查系统信息及系统服务
系统信息 uname -a # 查看内核/操作系统/CPU信息 cat /etc/issue # 查看操作系统版本 cat /proc/version ...