java线程安全之死锁

Posted 我想月薪过万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java线程安全之死锁相关的知识,希望对你有一定的参考价值。

死锁图解

 

死锁代码演示

package DeadLock;

/**
 * 死锁代码要会写
 * 一般面试官要求你会写。
 * 只有会写的,才会在以后开发中注意这个事儿
 * 因为死锁很难调试
 */

public class DeadLockDemo 

    public static void main(String[] args) 
        Object a1 = new Object();
        Object a2 = new Object();

        MyThread t1 = new MyThread(a1, a2);
        MyThread t2 = new MyThread(a2, a1);

        t1.start();
        t2.start();
    



class MyThread extends Thread 

    private Object a1;
    private Object a2;

    public MyThread(Object a1, Object a2) 
        this.a1 = a1;
        this.a2 = a2;
    

    @Override
    public void run() 
        synchronized (a1) 
            try 
                Thread.sleep(1000);
             catch (InterruptedException e) 
                e.printStackTrace();
            
            synchronized (a2) 

            
        
    

在开发中应该怎么解决线程安全问题

 

以上是关于java线程安全之死锁的主要内容,如果未能解决你的问题,请参考以下文章

Java面试宝典线程安全问题|线程死锁的出现|线程安全的集合类

Java之线程,常用方法,线程同步,死锁

多线程之死锁分析

转:Java并发编程之九:死锁(含代码)

java并发之线程安全问题

多线程之死锁产生