知识卡片

令牌机制

结构图卡 · 1950.f

内容

活动图的规则底层大量依赖令牌的产生和消费:初始节点创建一个令牌并传给下一个动作,动作执行完把令牌继续往下传;到达分叉时,一个进入的令牌会在每一条向外的并发流上各产生一个新令牌;到达结合时则相反,每条进入流的令牌到达后先不做任何事,必须等所有进入流都出现令牌,才在外向流上产生一个输出令牌。这套机制解释了分叉制造并行、结合等待同步的底层原因,用硬币或筹码在图上手动移动令牌,是理解复杂活动图行为的实用可视化技巧。

结构图:

flowchart LR
    A[初始节点: 生成1个令牌] --> B[动作: 消费并重新产生令牌]
    B --> C{fork 分叉: 1个令牌进入}
    C --> D[每条外向流各产生1个令牌]
    D --> E{join 结合: 等待所有令牌}
    E -->|全部到达才触发| F[外向流产生1个令牌]

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第11章《活动图》(源文件:_epub-src/EPUB/10.xhtml) - 结论依据:原文说明"初始节点创建一个令牌,然后传给下一个动作……在分叉处,一个令牌进入,分叉在每一个向外的流上产生一个令牌。反过来,在结合处,每一个向里的令牌到达,没有任何事情发生,直到所有令牌出现在结合处;然后一个令牌在外向流上产生"。 - 原始内容:初始节点创建一个令牌,然后传给下一个动作,该动作执行,再把令牌传给下一个。在分叉处,一个令牌进入,分叉在每一个向外的流上产生一个令牌。反过来,在结合处,每一个向里的令牌到达,没有任何事情发生,直到所有令牌出现在结合处;然后一个令牌在外向流上产生。