How can I programmatically detect that a deadlock has occurred in a Java program?
In case you want it to be done in run-time you can use watchdog for that.