状态路径

text
NEW → prepare → READY → start → RUNNING
                         │          │
                         │        pause
                         │          ▼
                         └─────── PAUSED
                                    │
                         single_step / resume

READY / RUNNING / PAUSED → reset
READY / RUNNING / PAUSED → stop → STOPPED
任意未关闭状态 → close → CLOSED

prepare 创建并检查运行依赖,start 开始推进世界,pause 在完整边界暂停,single_step 只推进一个允许的步,stop 结束活动运行,close 释放全部资源。

Generation

Reset 会创建新的 generation 并把 tick 重新置零。旧 generation 中排队的写操作、控制会话或订阅不能泄漏到新世界;读取结果也携带 generation,便于调用者识别过期数据。

同步与异步门面

FastSimApplication 是推荐的异步门面,适合嵌入 asyncio 应用、Server 和插件。FastSimRun 提供同步上下文与阻塞式生命周期操作,适合脚本和简单 CLI 集成。二者不构成两套 Runtime。

终结顺序

Stop 与 close 不只是关闭后端。控制源需要停止提交,未完成 Operation 需要得到终态,数据插件需要 flush,输出需要验证后原子发布,订阅与服务必须撤销。只有完成这些步骤,Run 才能被报告为完整结束。

生命周期不变量

  • 物理世界只有一个权威所有者。
  • Pause 不把世界停在半个控制/物理 tick 中间。
  • Close 幂等且最终释放后台任务。
  • 失败与取消必须保留结构化结果,不能伪装成成功停止。

公共方法见Application API 指南Python SDK