如何在 UML 序列图中对并行线程建模

How to model parallel threads in a UML sequence diagram

如何在序列图中为对对象执行操作的两个并行线程建模?

sequence diagram 中,生命线代表交互中的个体参与者。因此,在线程之间共享的对象应该在图中出现一次且仅出现一次。

您还可以用生命线表示与共享对象交互的每个线程对象。可以是直接线程实例化,也可以是在两个线程的上下文中创建的几个对象。

但这还不够。原则上,与对象的交互顺序由消息的垂直顺序指示。那么如何证明交互可能并行发生呢?

为了表示并行性,您可以使用运算符 par 引入的 combined fragment。在图形上(参见 link),组合片段在序列图中表示为一个框区域,平行序列由水平虚线分隔(每个片段将对应一个执行线程。

P.S:此示例显示了 2 个线程,但您可以通过添加更多水平虚线来添加更多线程。