什么类型的图表最适合可视化争用等线程问题?

时间:2009-07-09 20:16:42

标签: multithreading diagram deadlock contention

在调试我们系统的问题时,我发现了导致瓶颈的线程争用。我需要向参与处理这个问题的其他人解释这种现象。他们中的一些人不是来自开发团队(但他们是合理的技术)。那么什么类型的图表可用于描述线程问题,如争用,死锁等?一些例子非常有用。

5 个答案:

答案 0 :(得分:3)

以相同的方式绘制数据报级别的网络通信。

例如,您为每个线程绘制一个时间轴,然后您的跨线程通信由在一个发送点连接这些时间线并在另一个上接收的行组成。

答案 1 :(得分:3)

Doug Lea(Java中的并发编程)使用一个垂直时间线,其中包含线程列,然后是一行 列在任何给定时间捕获状态。

连续的行捕获一系列事件。

问题在于,大部分的讨论需要考虑各种排列 可能的状态变化。

我想知道这些图表的PowerPoint动画版本是否会对您想到的观众有所帮助。

答案 2 :(得分:1)

等待图可能很有用,这有助于绘制资源和线程之间的依赖关系。

答案 3 :(得分:0)

如果不必是图表,则可以编写简单(详细)程序。就像任何教科书教授并发/死锁问题一样。

答案 4 :(得分:0)

UML的序列图可能是最佳选择。为了显示多个线程,每个线程都有一个垂直条,显示线程的开始和终止(终止是条形图底部的X)。垂直条之间的箭头表示在线程之间传递的消息,而指向自身的箭头表示线程在自身上进行调用。

有关示例,请参阅:http://www.agilemodeling.com/artifacts/sequenceDiagram.htm