4

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

4

5 回答 5

3

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

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

于 2009-07-09T20:25:02.387 回答
3

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

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

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

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

于 2009-07-09T20:32:09.003 回答
1

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

于 2009-07-09T20:31:51.140 回答
0

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

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

于 2009-07-09T22:16:46.077 回答
0

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

于 2009-07-09T20:30:44.437 回答