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