• java查错


    package com.ogj.lock;
    
    import java.util.concurrent.TimeUnit;
    
    public class DeadLock {
        public static void main(String[] args) {
            String lockA= "lockA";
            String lockB= "lockB";
    
            new Thread(new MyThread(lockA,lockB),"t1").start();
            new Thread(new MyThread(lockB,lockA),"t2").start();
        }
    }
    
    class MyThread implements Runnable{
    
        private String lockA;
        private String lockB;
    
        public MyThread(String lockA, String lockB) {
            this.lockA = lockA;
            this.lockB = lockB;
        }
    
        @Override
        public void run() {
            synchronized (lockA){
                System.out.println(Thread.currentThread().getName()+" lock"+lockA+"===>get"+lockB);
                try {
                    TimeUnit.SECONDS.sleep(2);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lockB){
                    System.out.println(Thread.currentThread().getName()+" lock"+lockB+"===>get"+lockA);
                }
            }
        }
    }
    
    

    ============================================== 以上是死锁代码 ===================================================

    1. 用jps命令查到程序的id
    2. 用jstack命令查看对应程序的栈信息

    [外链图片转存中...(img-LeKLRYJj-1595850751627)]

    [外链图片转存中...(img-kQeUM5lC-1595850751627)]

    让火焰净化一切
  • 相关阅读:
    angular-指令
    microbit 范例课程
    microsoft 为microbit.org 设计的课程
    Microbit 翻译计划及IDE 中文化
    Microbit MicroPython 介绍
    micro:bit 软件生态系统介绍
    Microbit 硬件架构介绍
    TCP协议和UDP协议下的socket
    爬虫-链家二手房
    函数相关
  • 原文地址:https://www.cnblogs.com/icefoxhz/p/13958597.html
Copyright © 2020-2023  润新知