【问题标题】:How to visualize multithreading processes?如何可视化多线程进程?
【发布时间】:2011-07-28 13:49:15
【问题描述】:

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

【问题讨论】:

    标签: multithreading architecture uml sequence-diagram


    【解决方案1】:

    Have a look at this article

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

    编辑

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

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

    这就是为什么我寄希望于平台和语言来解决这些问题,但我们还没有做到。

    【讨论】:

    • 我在帖子中添加了一些经验。
    【解决方案2】:

    如果您想调查关键对象在时间约束下相互发送消息时的状态变化,您可以使用 UML 2 Timing Diagram

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多