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

Multithreading 如何在序列图中演示多个线程?,multithreading,uml,sequence-diagram,Multithreading,Uml,Sequence Diagram,如何在序列图或类似图中清楚地说明多个执行线程 我没有找到任何明确的例子。我看到的所有图表都是用来说明单个线程的 更新:被接受的答案是我看到的最好的例子,但它确实留下了一点不尽如人意的地方。最后,我在单独的序列图中演示了线程。我不确定序列图是否一定适用于多个线程。这里有一个可能有用的图,在左侧可以看到解释: 您可能对MSC感兴趣 是一张简而言之描述MSC的幻灯片。您可以使用“par”片段来模拟并行执行的多个同步调用。片段由一个带有标签“par”的矩形组成。矩形被分成多个框,每个框代表一个执行线

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

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



更新:被接受的答案是我看到的最好的例子,但它确实留下了一点不尽如人意的地方。最后,我在单独的序列图中演示了线程。我不确定序列图是否一定适用于多个线程。

这里有一个可能有用的图,在左侧可以看到解释:

您可能对MSC感兴趣

是一张简而言之描述MSC的幻灯片。

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

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

本页给出了一个示例:

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


希望它能帮助一些人。

这是sihaya答案的复制品,但详细介绍了如何通过网络工具和一个不会消失的可视化示例来实现这一点

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

@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

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


我还看到了这个文档,它有几种不同的方法。不错。。但是当我读到它的时候确实让我有点头晕;)处理多个线程将有点令人生畏,因为使用线程的部分原因是它们是自治的。您可能希望将相关线程作为单独的程序一起执行。所以,线程1(控制器线程)启动,产生3个线程,它们处理并向控制器报告。然后,这些将在一个序列图中。可能有20个其他线程被忽略,但这很好,因为它们正在执行其他不相关的任务。是否有图表示例的链接?我不知道这如何表示多个线程。我必须要更多的咖啡因。这是一种表示活动并行运行、交流和同步的一般形式。这可能是进程、线程、实时任务,甚至是运行在不同计算机上的程序。似乎与@PhilipG相同,但当前选择的答案更糟糕,因为考虑到这一点,如果调用只需要生成一个线程并立即返回,则这不起作用。