As 托马斯·基利安描述here,带有令牌的活动图节点的正常行为是:
当一个节点有所有传入的数据时,该节点就会变为活动状态InformationFlow connectors
令牌已到达。当节点完成时,它会沿着所有传出信息流连接器发送单个令牌。
但他还补充道:
有一些特殊的节点,例如 fork 和 merge,它们的行为有点不同
我知道“合并”节点的行为有所不同,因为它通过接收第一个令牌立即变为活动状态并接受多个备用流中的一个。但是 fork/join 节点的行为与正常行为的 token 有什么区别呢?
Merge
- and DecisionNode
s look the same, but are different elements:
.
在图表中,您只能通过查看传入和传出来区分两者InformationFlow
s。第一个有多个传入和一个传出,而第二个则具有相反的关系。 AMergeNode
接受任何传入令牌并将其直接转发到其单个传出令牌InformationFlow
。所以不像Action
它不会等待所有令牌。这DecisionNode
相反,仅接受一个令牌并让它仅传递给其传出之一InformationFlow
s。建模者有责任以一种只有一个人评估为真的方式来设置防护。如果有更多(甚至无人看守)InformationFlow
是令牌将采取任意自由路线。
Fork
and Join
are also two different elements which look the same:
(or vertically).
您还可以通过传入/传出的数量来区分它们InformationFlow
s. Fork
有一个输入和多个输出并且Join
反之亦然。 AFork
将发送与传出的令牌一样多的令牌InformationFlow
一旦令牌到达其单一传入InformationFlow
. The Join
会(比如Action
s) 等待令牌到达其所有传入InformationFlow
s。只有这样,它才会在其单一输出处出现一个单一令牌InformationFlow
.
所以虽然Merge
- and DecisionNode
s 控制单个令牌的流程(执行路径)Fork
and Join
用于启动和同步并行执行路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)