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

Multithreading 如何在UML序列图中建模并行线程,multithreading,uml,sequence-diagram,Multithreading,Uml,Sequence Diagram,如何对序列图中对对象执行操作的两个并行线程建模?在序列图中,生命线表示交互中的单个参与者。因此,线程之间共享的对象应该在图中显示一次,并且仅显示一次 您还可以使用生命线表示与共享对象交互的每个线程对象。它可以是直接的线程实例化,也可以是在两个线程的上下文中创建的多个对象 但这还不够。原则上,与对象交互的顺序由消息的垂直顺序指示。那么,如何证明相互作用可以并行发生呢 为了表示并行性,可以使用操作符par引入的。从图形上看(参见链接),组合片段在序列图中表示为一个方框区域,平行序列由水平虚线分隔(每

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

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

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

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

为了表示并行性,可以使用操作符
par
引入的。从图形上看(参见链接),组合片段在序列图中表示为一个方框区域,平行序列由水平虚线分隔(每个片段将对应于一个执行线程)


S:这个例子显示了2个线程,但是你可以通过添加更多的水平虚线来添加更多的线程。

两个线程的两个生命线。考虑在目标ObjeCuTHM上使用异步调用,这3个泛化关系是什么?为什么返回到右边然后执行一个SOOO长的执行?用在线工具制作的脏图只是为了演示
par
。幸运的是,我可以找到该图并以图形方式编辑它。当然:普通箭头表示同步消息,虚线表示返回消息。然而,在右侧,返回后的激活时间不是很长,而是创建消息ich看起来像一条返回消息,尽管它有完全不同的语义。当然,返回是一种创造。现在剩下的都好了,这一点也很清楚:-)