[英]Parallel processes with dependency
再次查看您的解決方案后,我認為您看到了問題,但實際上並沒有。 您擔心掛起的令牌,但在這種情況下這不是問題。 如果繞過 P22,來自 P11 的令牌將 go 直接向下發送到加入節點。 P11 和 P12 也將毫無問題地向下傳遞它們的令牌,從而創建卡在中間右連接中的幽靈令牌。 由於較低的連接現在有兩個令牌,它將繼續到活動終止的結尾。 屆時,任何自由運行的令牌(甚至活動操作)也將終止。 都好。
我留下我以前的答案以獲得進一步的靈感。 但基本上它們都將以類似的方式實現,因為它們代表一個網關。
原答案
我想使用事件是最好的方法:
這樣, D
只能在收到A
完成后發送的事件時開始(和完成)。
另一種方法是使用 object 存儲動作A
的最終確定並由D
讀取。
請注意,通過a ready
的對角線連接器是ObjectFlow
s,UML 默認情況下不會光學區分(與 SysML 不同)。
UML 2.5 的第 374 頁指出
Object 令牌通過 ObjectFlow,通過它們的值通過 Activity 攜帶數據,或者不攜帶數據(null 令牌)。 null 令牌仍然可以沿 ObjectFlow 傳遞並像任何其他令牌一樣使用。 例如,一個 Action 可以 output a null 標記來明確指示它沒有產生可選值,下游 DecisionNode(參見子條款 15.3)可以對此進行測試並相應地分支。
所以你可以看到它是一個持有令牌的緩沖區,不需要存儲真正的數據。 基本上這與事件相同。 在實現方面,您可以使用信號量或 stream 來實現這一點,但當然在這個級別上您不會太在意這些細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.