如何可视化多线程进程?

时间:2011-07-28 13:49:16

标签: multithreading architecture uml sequence-diagram

我想模拟多线程应用程序行为。有很多同步(ManualResetEvents等)。我试图使用序列图,但它似乎缺乏方便的同步可视化。那么我必须使用哪种图表来完成这类任务?

3 个答案:

答案 0 :(得分:5)

Have a look at this article

我一直在使用UML活动图和diagrams in this article

修改

分享一些经验:不要指望这些图解决多线程的所有设计问题。出于同样的原因,多线程系统的单元测试很难,但绘制图表也是如此。例如,看看6.45.Vapuru的答案中提到的图表。是的,它显示了层的并发执行,这将帮助您查明潜在的错误,但尝试可视化此图在尝试显示网站的多个并发客户端时的外观。它很快变得一团糟。我并不是说它无法完成,但可能的变化数量如此巨大,以至于需要付出很多努力才能做到正确。

这是一个很好的例子,可以帮助您理解为什么多线程很难。如果你不能画它,你可能完全没有把握它的复杂性,你将无法测试它,你总会有那种唠叨的感觉,你忘记了什么。

这就是为什么我希望平台和语言能够解决这些问题,但我们还没有。

答案 1 :(得分:1)

如果要调查关键对象在时序约束下相互消息传递时的状态变化,可以使用UML 2 时序图

可以查看http://www.uml-diagrams.org/timing-diagrams-examples.html网站以获取简单的示例时序图[网站延迟]

答案 2 :(得分:0)

讨论了以图解方式表示多线程here的不同方法。 diagram的最终形式看起来非常适合使用ManualResetEvents可视化同步。