其他分享
首页 > 其他分享> > markdown mermaid状态图

markdown mermaid状态图

作者:互联网

状态图

状态图是一种用于计算机科学和相关领域描述系统行为的图。状态图要求描述的系统由有限数量的状态组成。

语法:

stateDiagram-v2
    [*] --> Still
    Still --> [*]

    Still --> Moving:push
    Moving --> Still:摩擦
    Moving --> Crash:速度过快
    Crash --> [*]
stateDiagram-v2 [*] --> Still Still --> [*] Still --> Moving:push Moving --> Still:摩擦 Moving --> Crash:速度过快 Crash --> [*]

在状态图中,展示了系统有那些状态,以及状态之间相互转换的。 上面的示例图显示了 Still、MovingCrash 三种状态。 可以将Still状态 更改为 Moving。 也可以将Moving状态更改回StillCrash。 但无法从Still过度到Crash 状态。

  1. 状态

可以通过多种方式声明一个状态。 最简单的方法是状态定义是通过 id 。

stateDiagram-v2
    id
stateDiagram-v2 id

定义状态的另一种方法是,状态id后接冒号和描述。

stateDiagram-v2
	S:开始
	R:运行
	W:等待
	
	S-->R:start()
	R-->W:wait()
	W-->R:notify(),nofityAll()
stateDiagram-v2 S:开始 R:运行 W:等待 S-->R:start() R-->W:wait() W-->R:notify(),nofityAll()

id:des :状态id:状态详细

如果状态比较长,并且要多次引用,可以用此种方式,可以减少敲打键盘的的次数。

  1. 过渡:状态转换

当一种状态进入另一种状态时,通过过渡转换。 这使用文本箭头-->表示。

stateDiagram-v2
	状态1 --> 状态2
stateDiagram-v2 状态1 --> 状态2

可以向过渡中添加文本。描述它代表什么。

stateDiagram-v2
	new-->Runable:start()
stateDiagram-v2 new-->Runable:start()
  1. 开始和结束

有两种特殊状态指示图,开始和停止。 可以用 [*] 语法表示开始或停止状态。

stateDiagram-v2
    [*] --> 运行
    s1 --> [*]
stateDiagram-v2 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()结束
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()结束

标签:状态,Runnable,--,v2,markdown,状态图,mermaid,Still,stateDiagram
来源: https://www.cnblogs.com/sdsxblpjava/p/15791270.html