1、查看linux的SIG列表 man 7 signal,下拉可以有完整的signal列表
2、jconsole is able to detect deadlocks in a running application(Thread 标签下有个detect deadlock选项)
3、使用JDK的jstack命令获取JVM的调用栈
4、使用kill -3 pid,打出指定进程的JVM调用栈,目前使用Java service wrapper封装用户程序,然后在需要的时候kill -3 发一个SIGQUIT给进程,可以在wrapper.log中 看到有死锁的日志,由此分析死锁
5、其它第三方工具,Optimizelt、JProbe、Coverity等,没用过,不评价,来源stackoverflow