2009-10-29 44 views
52

如何清楚地說明序列圖或類似圖中的多個執行線程?如何在序列圖中說明多個線程?

我一直沒有找到任何明確的例子。我看到的所有圖表都用於說明單個線程。


更新:接受的答案是我看到的最好的例子,但它確實很不理想公平位。我結束了在單獨的序列圖中說明線程。我不確定序列圖是否適用於多個線程。

+1

似乎等同於http://stackoverflow.com/questions/954193/is-there-an-inituitive-uml-approach-to-depict-threads – feuGene 2012-08-06 19:23:05

回答

23

這裏有一個圖表,可能是有用的,並在左側可以看到的解釋: http://sdedit.sourceforge.net/multithreading/example/index.html

Multithreading Sequence Diagram

+0

我看到了。不錯,但是當我讀它時確實讓我有點頭暈;) – 2009-10-29 14:06:18

+0

處理多線程會有點令人生畏,因爲使用線程的部分原因是它們是自治的。你可能想把相關的線程一起做成單獨的程序。因此,線程1(控制器線程)啓動,產生3個線程,它們處理並向控制器報告。然後,這些將在一個序列圖中。可能有20個其他線程被忽略,但這很好,因爲他們正在做其他不相關的任務。 – 2009-10-29 14:21:53

1

您可能感興趣的Message Sequence Charts,或MSC。

Here是一張描述MSC的幻燈片。

+0

有圖表示例的鏈接嗎? – 2009-10-29 14:07:02

+0

我編輯了我的答案,鏈接到示例圖。 – mouviciel 2009-10-29 14:10:48

+1

我看不到多個線程。我必須需要更多的咖啡因。 – 2009-10-29 14:25:14

5

您可以使用「par」片段爲並行執行的多個同步調用建模。該片段由一個標籤爲「par」的矩形組成。該矩形被分成多個框,每個框代表一個執行線程。

給出一個例子此頁上: http://www.ibm.com/developerworks/rational/library/3101.html#N10227

+0

你應該在你的回答中展示一個例子。由於你的鏈接可能會下降...... – 2014-03-06 11:15:52

+0

@PhilipG當前選擇的答案在這方面更糟 – 2014-07-31 16:14:42

+1

如果調用只需產生一個線程並立即返回,則這不起作用。 – LuckyLikey 2015-07-02 11:22:27

10

我發現在谷歌這個問題,所以我想出了我自己並沒有公認的答案一個巨大的風扇。這是我代表我的應用程序的線程模型(我的組織將其稱爲「併發視點」):

Concurrency viewpoint

希望這可以幫助別人。

2

這是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