我想模拟多线程应用程序行为。有很多同步(ManualResetEvents等)。我试图使用序列图,但它似乎缺乏方便的同步可视化。那么我必须使用哪种图表来完成这类任务?
答案 0 :(得分:5)
我一直在使用UML活动图和diagrams in this article
修改强>
分享一些经验:不要指望这些图解决多线程的所有设计问题。出于同样的原因,多线程系统的单元测试很难,但绘制图表也是如此。例如,看看6.45.Vapuru的答案中提到的图表。是的,它显示了层的并发执行,这将帮助您查明潜在的错误,但尝试可视化此图在尝试显示网站的多个并发客户端时的外观。它很快变得一团糟。我并不是说它无法完成,但可能的变化数量如此巨大,以至于需要付出很多努力才能做到正确。
这是一个很好的例子,可以帮助您理解为什么多线程很难。如果你不能画它,你可能完全没有把握它的复杂性,你将无法测试它,你总会有那种唠叨的感觉,你忘记了什么。
这就是为什么我希望平台和语言能够解决这些问题,但我们还没有。
答案 1 :(得分:1)
如果要调查关键对象在时序约束下相互消息传递时的状态变化,可以使用UML 2 时序图
可以查看http://www.uml-diagrams.org/timing-diagrams-examples.html网站以获取简单的示例时序图[网站延迟]
答案 2 :(得分:0)