我是靠谱客的博主 感性小丸子,最近开发中收集的这篇文章主要介绍Linux下Java如何查看死锁1.首先先编写一个死锁的程序2.运行程序得到了一下得输出,可以发现程序不再运行发生了死锁3.在Linux终端上输入jps命令查看目标进程的PID是434004.通过jstack -l 43400命令查看进程的堆栈信信息,这时发现出现了死锁,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1.首先先编写一个死锁的程序
public class Locktest extends Thread {
Object o1;
Object o2;
boolean flag;
Locktest(Object o1, Object o2, boolean flag) {
this.o1 = o1;
this.o2 = o2;
this.flag = flag;
}
public void run() {
while(true)
if(flag) {
while(true)
synchronized (o1) {
System.out.println("Flag is true,get the lock o1");
synchronized(o2) {
System.out.println("Flag is true,get the lock o2");
}
}
} else {
while(true)
synchronized (o2) {
System.out.println("Flag is false,get the lock o2");
synchronized(o1) {
System.out.println("Flag is false,get the lock o1");
}
}
}
}
public static void main(String[] atgs) {
Object o1 = new Object();
Object o2 = new Object();
Locktest test1 = new Locktest(o1, o2, true);
Locktest test2 = new Locktest(o1, o2, false);
test1.start();
test2.start();
}
}
2.运行程序得到了一下得输出,可以发现程序不再运行发生了死锁
3.在Linux终端上输入jps命令查看目标进程的PID是43400
4.通过jstack -l 43400命令查看进程的堆栈信信息,这时发现出现了死锁
可以看到线程0,1分别持有了对方等待的锁,形成了死锁
最后
以上就是感性小丸子为你收集整理的Linux下Java如何查看死锁1.首先先编写一个死锁的程序2.运行程序得到了一下得输出,可以发现程序不再运行发生了死锁3.在Linux终端上输入jps命令查看目标进程的PID是434004.通过jstack -l 43400命令查看进程的堆栈信信息,这时发现出现了死锁的全部内容,希望文章能够帮你解决Linux下Java如何查看死锁1.首先先编写一个死锁的程序2.运行程序得到了一下得输出,可以发现程序不再运行发生了死锁3.在Linux终端上输入jps命令查看目标进程的PID是434004.通过jstack -l 43400命令查看进程的堆栈信信息,这时发现出现了死锁所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复