多线程的学习 (四) 如何检查java程序时候产生死锁

1. 可以通过jdk命令工具(1.5以后都有)jps查看

多线程的学习 (四) 如何检查java程序时候产生死锁

首先通过jsp查看出程序的PID,然后通过  jstack pid 的方式查看

 

多线程的学习 (四) 如何检查java程序时候产生死锁

如图,如果有死锁则会有以下信息。

2.通过jconsole进入视图管控台(适合不喜欢你看命令的朋友)

多线程的学习 (四) 如何检查java程序时候产生死锁

下一步

多线程的学习 (四) 如何检查java程序时候产生死锁

这里要介绍以下,除了看死锁之外,这个命令进来的管控台还可以看堆栈内存的消耗

多线程的学习 (四) 如何检查java程序时候产生死锁

比较友好,还有点中文内容,看到全英文不管懂不懂就头疼(辣鸡的我)

多线程的学习 (四) 如何检查java程序时候产生死锁

ps:如果jps无法使用可能是以下问题

1.可能是你的文件权限没给

System.out.println(System.getProperties()); 
查看属性java.io.tmpdir=C:/Users/%USER%/AppData/Local/Temp/,看看这个文件夹的权限,右键-》属性-》安全-》看有没有你这个用户,有的话用户权限有没有读写

2.可能是你的java没有配置对,或者说配置不完善,检查一下就行了小老弟

https://www.runoob.com/java/java-environment-setup.html

再ps:如何制作死锁

https://blog.****.net/BCDMW233/article/details/90650800