美文网首页
对于死锁的理解

对于死锁的理解

作者: 倚仗听江 | 来源:发表于2020-09-06 23:15 被阅读0次

死锁是指两个或两个以上的线程因为争夺资源而造成的一种互相等待的现象,若无外力干涉,他们都将无法进行下去。

死锁.png

直接上代码吧,我们写一个死锁的示例

class HoldLockThread implements Runnable {

    String lockA;
    String lockB;

    public HoldLockThread(String lockA, String lockB) {
        this.lockA = lockA;
        this.lockB = lockB;
    }

    @Override
    public void run() {
        synchronized (lockA) {
            System.out.println(Thread.currentThread().getName() + "持有" + lockA + ",想要获取" +lockB);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            synchronized (lockB) {
                System.out.println(Thread.currentThread().getName());
            }
        }
    }
}

public class DeadLockDemo {

    public static void main(String[] args) {
        String lockA = "lockA";
        String lockB = "lockB";

        new Thread(new HoldLockThread(lockA,lockB),"AAA").start();
        new Thread(new HoldLockThread(lockB,lockA),"BBB").start();
    }
}

那万一发生了死锁我们怎么定位呢?
首先我们可以用jps定位进程号


jps定位进程号.png

再用jstack找到死锁查看(用于生成虚拟机当前时刻的线程快照)


jstack找到死锁查看.png

相关文章

  • 对于死锁的理解

    死锁是指两个或两个以上的线程因为争夺资源而造成的一种互相等待的现象,若无外力干涉,他们都将无法进行下去。 直接上代...

  • 揭秘:“死锁”四个必要条件的合理解释

    《“死锁”四个必要条件的合理解释》分为三个部分: 【1】“死锁”的含义 【2】“死锁”的原因及四个必要条件的合理解...

  • “死锁”四个必要条件的合理解释

    《“死锁”四个必要条件的合理解释》分为三个部分: 【1】“死锁”的含义 【2】“死锁”的原因及四个必要条件的合理解...

  • 01-iOS多线程 ——图解死锁

    死锁 - 死锁问题,是iOS开发中必须要理解的问题,可能光看一些讲解死锁的代码并不是很容易理解。我制作了下面这幅图...

  • Java死锁之理解死锁

    线程死锁示例 为了维护数据的一致性,多线程环境下必须对一些方法进行加锁,但是如果锁资源使用不当也会带来一些隐患,比...

  • Java死锁检测之ThreadMXBean

    看此文章前请先了解之前一篇文章 "Java死锁之理解死锁" 中的死锁示例java 中提供了可以检测死锁的工具类Th...

  • GCD死锁的理解

    以上代码会造成死锁,原因是viewDidLoad函数会在主线程执行,当主线程中有任务在执行时,主队列内的任务会被阻...

  • 死锁

    在实际编程中,死锁虽然不常见,但是如果遇到死锁便是致命的。接下来了解一下《操作系统》对于死锁产生条件的描述。 死锁...

  • 理解GCD死锁

    因为本文只做分享用,非学术性文章,所以某些理论并不是非常严谨,望大家见谅。写下这篇文章有以下的目: 我写这篇文章时...

  • Python并发编程中关于死锁,递归锁,信号量的理解

    并发编程中关于死锁,递归锁,信号量的理解 1.死锁**** ​ 所谓死锁: 是指两个或两个以上的进程或线程在执行过...

网友评论

      本文标题:对于死锁的理解

      本文链接:https://www.haomeiwen.com/subject/srbhektx.html