72

您如何在序列图或类似图中清楚地说明多个执行线程?

我还没有找到任何明确的例子。我看到的所有图表都用于说明单个线程。


更新:接受的答案是我看到的最好的例子,但它确实有很多不足之处。我最终在单独的序列图中说明了线程。我不确定序列图是否一定适用于多个线程。

4

6 回答 6

43

这是一个可能有用的图表,在左侧您可以看到解释: http ://sdedit.sourceforge.net/multithreading/example/index.html

多线程序列图

于 2009-10-29T13:30:17.983 回答
21

我在 Google 上发现了这个问题,并且不是公认答案的忠实粉丝,所以我只是想出了自己的答案。这就是我在我的应用程序中表示线程模型的方式(我的组织称之为“并发视点”):

并发观点

希望它可以帮助某人。

于 2016-02-12T19:27:59.933 回答
14

这是 sihaya 的答案的副本,但详细说明了如何使用网络上的工具和一个不会消失的视觉示例来完成它。

UML 序列图方法是使用“par”片段来对并行处理的多个消息进行建模。下面是文本描述,当输入到 Web 上可用的PlantUML工具时,将生成下图。

@startuml

Person -> MicrowaveOven : Cook Food
activate MicrowaveOven
par
MicrowaveOven -> MicrowaveOven : Activate Magnetron
else
MicrowaveOven -> MicrowaveOven : Activate Rotation Motor
end

MicrowaveOven --> Person : Delicious Food
deactivate MicrowaveOven

@enduml

标准 UML 示例

于 2017-12-13T15:52:02.600 回答
10

您可以使用“par”片段来模拟并行执行的多个同步调用。该片段由一个带有“par”标签的矩形组成。矩形被分成多个框,每个框代表一个执行线程。

下面是从链接中提取的示例。

在此处输入图像描述

此页面上给出了一个示例:http: //www.ibm.com/developerworks/rational/library/3101.html#N10227

于 2014-03-06T10:57:06.113 回答
1

我喜欢@Brandon 的回答。这是一个显示清晰的线程通信模型的图表。

我还遇到了这个文件,它有几种不同的方法https://www.omg.org/ocup-2/documents/concurrency_in_uml_version_2.6.pdf

于 2020-03-18T16:22:38.647 回答
0

您可能对消息序列图或 MSC 感兴趣。

是一张简述 MSC 的幻灯片。

于 2009-10-29T13:41:41.340 回答