multithreading - 如何可视化多线程进程?

标签 multithreading architecture uml sequence-diagram

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

最佳答案

Have a look at this article

我一直在使用 UML 事件图和 diagrams in this article

编辑

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

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

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

关于multithreading - 如何可视化多线程进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860027/

相关文章:

c - pthread_barrier 不符合我的预期

c - Linux 中多线程的自动使用

uml - 删除 Enterprise Architect 图表中未找到的所有元素

java - 您如何为 UML 序列图上的每个循环建模 Java?

design-patterns - 面向对象的设计评估

java - Callable 接口(interface)是一个线程吗?它工作时我无法运行任何东西

java - 一个 CPU 上一次可以运行多少个线程

c++ - 通过策略(策略)模式启用多个后端

language-agnostic - 除了一系列 View 之外,还可以如何呈现架构文档?

Java - 在这种情况下,委托(delegate)是一个好的解决方案吗?