您如何在序列图或类似图中清楚地说明多个执行线程?
我还没有找到任何明确的例子。我看到的所有图表都用于说明单个线程。
更新:接受的答案是我看到的最好的例子,但它确实有很多不足之处。我最终在单独的序列图中说明了线程。我不确定序列图是否一定适用于多个线程。
您如何在序列图或类似图中清楚地说明多个执行线程?
我还没有找到任何明确的例子。我看到的所有图表都用于说明单个线程。
更新:接受的答案是我看到的最好的例子,但它确实有很多不足之处。我最终在单独的序列图中说明了线程。我不确定序列图是否一定适用于多个线程。
这是一个可能有用的图表,在左侧您可以看到解释: http ://sdedit.sourceforge.net/multithreading/example/index.html
这是 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
您可以使用“par”片段来模拟并行执行的多个同步调用。该片段由一个带有“par”标签的矩形组成。矩形被分成多个框,每个框代表一个执行线程。
下面是从链接中提取的示例。
此页面上给出了一个示例:http: //www.ibm.com/developerworks/rational/library/3101.html#N10227
我喜欢@Brandon 的回答。这是一个显示清晰的线程通信模型的图表。
我还遇到了这个文件,它有几种不同的方法https://www.omg.org/ocup-2/documents/concurrency_in_uml_version_2.6.pdf