如何在时序图中演示多个线程?

如何在一个时序图或类似的图表中清楚地说明多个执行线程?

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


更新 : 公认的答案是我所看到的最好的例子,但它确实留下了一些不尽人意的地方。最后,我在单独的序列图中对线程进行了说明。我不确定这个时序图是否适用于多线程。

99438 次浏览

这里有一个可能有用的图表,在左边你可以看到解释: Http://sdedit.sourceforge.net/multithreading/example/index.html

Multithreading Sequence Diagram

你可能对 信息序列图或 MSC 感兴趣。

这里 是一张简单描述 MSC 的幻灯片。

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

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

enter image description here

本页举例说明: Http://www.ibm.com/developerworks/rational/library/3101.html#n10227

我在谷歌上找到了这个问题,但并不喜欢这个被接受的答案,所以我就自己想了一个。这就是我在应用程序中表示线程模型的方式(我的组织称之为“并发视点”) :

Concurrency viewpoint

希望能帮到别人。

这是 Sihaya 的回答的副本,但是有关于如何使用网络上的工具来完成它的详细信息,以及一个不会消失的可视化示例。

UML 时序图的方法是使用“ par”片段来对并行处理的多个消息进行建模。下面是一个文本说明,当输入到 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

par UML example

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

我还偶然发现了这个文档,它有几种不同的方法 https://www.omg.org/ocup-2/documents/concurrency_in_uml_version_2.6.pdf