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

Chr*_*ian 10 multithreading uml sequence-diagram

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

Chr*_*phe 14

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

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

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

为了表示并行性,您将使用由 operator 引入的组合片段par。在图形上(请参阅链接),组合片段在序列图中表示为一个带框的区域,并行序列由水平虚线分隔(每个切片将对应一个执行线程。

![在此处输入图片说明

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