You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PlantUML能否表示包含parallel states的有限状态机图?

PlantUML对并行状态机的支持

PlantUML完全支持有限状态机中的并行状态(parallel states)绘制,能够很好地实现多事件源独立演化的逻辑,同时也能处理特殊场景下的状态同步需求。

你可以通过fork、fork again关键字创建并行状态分支,每个分支内可以定义各自独立的状态流转逻辑;如果需要在特定场景下合并或同步状态,还可以使用join关键字来实现。

以下是一个简单的示例,模拟设备电源状态和网络状态两个并行演化的状态机,同时包含电源断开时网络状态同步切换的特殊场景:

@startuml
state "设备总状态" as total
total --> fork

fork --> 电源状态 : 初始化
state 电源状态 {
  state 开机 as P_ON
  state 待机 as P_STANDBY
  state 关机 as P_OFF
  
  P_ON --> P_STANDBY : 触发待机指令
  P_STANDBY --> P_ON : 触发唤醒指令
  P_STANDBY --> P_OFF : 触发关机指令
  P_ON --> P_OFF : 触发强制关机
}

fork again --> 网络状态 : 初始化
state 网络状态 {
  state 在线 as N_ONLINE
  state 离线 as N_OFFLINE
  
  N_OFFLINE --> N_ONLINE : 网络恢复
  N_ONLINE --> N_OFFLINE : 网络中断
}

# 特殊场景:电源关机时强制网络离线
P_OFF --> N_OFFLINE : 电源断开

join --> total : 状态同步完成
@enduml

在这个示例中:

  • fork和fork again分别开启了电源状态、网络状态两个并行分支,各自独立处理事件触发的状态转换
  • 特殊场景下(电源断开),通过跨分支的状态转换实现了两个并行状态的同步
  • 你可以根据实际需求,给每个并行分支添加更多的状态和事件流转逻辑

内容的提问来源于stack exchange,提问作者RAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:20:32