我是靠谱客的博主 感性小丸子,最近开发中收集的这篇文章主要介绍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命令查看进程的堆栈信信息,这时发现出现了死锁所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部