栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

怎么查看多线程死锁,和死锁代码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

怎么查看多线程死锁,和死锁代码

死锁代码:

package day21.dmo06;

public class Demo {
    public static void main(String[] args) {
        Object objA = new Object();
        Object objB = new Object();
        new Thread(()->{
            while (true){
                synchronized (objA){
                    synchronized (objB){
                        System.out.println("小胖同学在走路");
                    }
                }
            }
        }).start();
        new Thread(()->{
            while (true){
                synchronized (objB){
                    synchronized (objA){
                        System.out.println("小小同学再走路");
                    }
                }
            }
        }).start();
    }
}

怎么知道怎么去查看是死锁呢?

打开cmd:输入jps

C:UsersAdministrator>jps

11472
13664 Launcher
15024 Demo
2384 Jps
15100 Demo

15100为地址 Demo文件名

再次提醒输入jastack 15100 时需要代码真正执行而且处于死锁状态

C:UsersAdministrator>jstack 15100

查看这串代码:

"Thread-1":
        at day21.dmo06.Demo.lambda$main$1(Demo.java:20)

(Demo.java:20),为文件名字的第20行进入死锁状态

"Thread-0":
        at day21.dmo06.Demo.lambda$main$0(Demo.java:11)

(Demo.java:11)为文件名字的第11行进入死锁状态

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860136.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号