Which diagram is best for visualizing threading issues like assertions?

When debugging a problem with our system, I found a thread conflict that causes a bottleneck. I need to explain this phenomenon to other people involved in solving this problem. Some of them are not from the development team (but they are quite technical). So, what types of charts can I use to show threading issues like assertions, deadlocks, etc.? Some examples would be very helpful.

+4
source share
5 answers

Doug Lea (concurrent programming in Java) uses a vertical row of time with columns for streams, then a row into columns is fixed at any time.

A sequence of lines captures a sequence of events.

The problem is that most disciplines require consideration of various permutations of possible state changes.

I wonder if the animated PowerPoint version of these charts will help the audience that you have in mind.

+3
source

Similarly, one circuit provides datagram-level network communications.

For example, you type one timeline for each stream, and then your connection between the flows consists of lines that connect these timelines at the sending points on one and receive on the other.

+3
source

Waiting graphs can be useful, which helps to display dependencies between resources and threads.

+1
source

If you do not need a diagram, you can write simple (detailed) programs. Just like any tutorials teach concurrency / deadlock problems.

0
source

Sequence diagrams from UML are probably the best choice. To show multiple threads, each thread has a vertical bar showing the start and end (the end is the X at the bottom of the panel) of the thread. The arrows between the vertical bars indicate the messages transmitted between the streams, and the arrow pointing to itself shows the stream, making the call on its own.

For some examples, see: http://www.agilemodeling.com/artifacts/sequenceDiagram.htm

0
source

All Articles