【发布时间】:2018-07-05 12:38:22
【问题描述】:
一个常见的多线程实现是有一些类,其中Method_A() 在一个线程中运行并被阻塞等待一些信号/事件成员变量(例如WaitForSingleObject)。
在不同线程中运行的交互类然后会调用Method_B(),它会做一些工作,设置信号/事件变量,也许做一些更多的工作,然后返回。
如何在序列图上表示这种交互?
我是否应该有两条生命线,每个线程一条,即使它们在类的同一个实例上运行?我的建模工具(Enterprise Architect 12)不允许同一个类在序列图上出现两次,所以似乎不鼓励这样做。
编辑:Geert 注意到序列图应该使用 instances, 而不是 classes, 这是一个公平的评论。然而问题是一样的:多条生命线意味着多个实例,但在问题中Method_A() 和Method_B() 是在 same 实例上运行,只是来自不同的线程。怎么表达?
【问题讨论】:
-
只要画出来就会很明显。
-
很遗憾不是@ThomasKilian。几个小时以来,我一直在尝试建立一些合理的模型。同一实例的多个生命线似乎是获得我想要的唯一方法。
标签: uml enterprise-architect sequence-diagram