Although Java supports multithreading better than many other languages, when there are problems, things still come tumbling down. Threadalyzer monitors thread execution as the Java VM runs and can pinpoint the cause of deadlocks, potential deadlocks, and data races. After identifying any of these problems, Threadalyzer tells you where and what the problem is so you can fix it. I ran Threadalyzer several times and discovered that JProbe not only identifies where these problems occur, but it can also analyze your code and locate potential problems. You can also select which classes to exclude from analysis.
Visualizer tracks the results.
This is the visual interface that runs concurrently with your program. It shows a list of messages for each problem. This list contains the class name and line number, so you can find offending lines in your code and take a closer look. Example 1 for some typical messages generated by Threadalyzer. These messages let you exactly pinpoint the location and culprits in your code.