【发布时间】:2018-03-01 08:00:01
【问题描述】:
如何对序列图中的对象执行操作的两个并行线程建模?
【问题讨论】:
-
两个线程的两条生命线。考虑对目标对象使用异步调用
标签: multithreading uml sequence-diagram
如何对序列图中的对象执行操作的两个并行线程建模?
【问题讨论】:
标签: multithreading uml sequence-diagram
在sequence diagram 中,生命线代表交互中的个人参与者。因此,您在线程之间共享的对象应该在图中出现一次且仅出现一次。
您还可以用生命线表示与您的共享对象交互的每个线程对象。它可以是直接的线程实例化,也可以是在两个线程的上下文中创建的多个对象。
但这还不够。原则上,与您的对象交互的顺序由消息的垂直顺序指示。那么如何证明交互可能是并行发生的呢?
为了表示并行性,您可以使用运算符par 引入的combined fragment。以图形方式(参见链接),组合片段在序列图中表示为一个加框区域,平行序列由水平虚线分隔(每个切片将对应一个执行线程。
P.S:此示例显示 2 个线程,但您可以通过添加更多水平虚线来添加更多线程。
【讨论】:
par。幸运的是,我可以找回图表并以图形方式对其进行编辑。当然:同步消息的纯箭头,返回消息的虚线。然而在右边,这些不是返回后很长的激活,而是一个创建消息,它看起来像一个返回消息,尽管它具有完全不同的语义。