美文网首页
线程 6. 死锁

线程 6. 死锁

作者: 灰气球 | 来源:发表于2017-06-02 11:56 被阅读0次

没有办法解决,只能避免

  • java同步机制解决了线程安全问题,但是同时也引发了死锁现象。
    • 死锁现象如何解决呢: 没法解决。 只能尽量的避免死锁现象。
    • 死锁现象出现 的根本原因:
      1. 存在两个或者两个以上的线程存在。
      2. 多个线程必须共享两个或者两个以上的资源。
class DeadLockThread extends Thread{
    public DeadLockThread(String name){
        super(name);
    }
    @Override
    public void run() {
        if("张三".equals(this.getName())){
            synchronized ("遥控器") {
                System.out.println(this.getName()+"取走了遥控器,准备取电池");
                synchronized ("电池") {
                    System.out.println(this.getName()+"取到了电池,开着空调爽歪歪的吹着 !!");
                }
            }
        }else if("李四".equals(this.getName())){
            synchronized ("电池") {
                System.out.println(this.getName()+"取走了电池,准备取取遥控器");
                synchronized ("遥控器") {
                    System.out.println(this.getName()+"取走了遥控器,开着空调爽歪歪的吹着 !!");
                }
            }
        }
    }
}
public class Demo2 {
    public static void main(String[] args) {
        //创建了线程对象
        DeadLockThread thread1 = new DeadLockThread("张三");
        DeadLockThread thread2 = new DeadLockThread("李四");
        thread1.setPriority(10);
        thread2.setPriority(1);
        //调用start方法启动线程
        thread1.start();
        thread2.start();
    }
}

相关文章

  • 线程 6. 死锁

    没有办法解决,只能避免 java同步机制解决了线程安全问题,但是同时也引发了死锁现象。死锁现象如何解决呢: 没法解...

  • GCD的使用

    1.同步 主线程 串行 死锁 2.异步 主线程 3.线程通信 4.延迟执行 5.组 6. 栅栏方法 dispatc...

  • JavaEE面试题总结 Day39 2018-12-29

    什么是线程死锁?死锁如何产生?如何避免线程死锁? 死锁的介绍: 线程死锁是指由于两个或者多个线程互相持有对方所需要...

  • Python中的各种锁

    Python之死锁 死锁分为两种情况,多进程/线程的死锁.或者是单线程的死锁. 1.首先看一下单线程的死锁,单线程...

  • 5. 死锁

    线程死锁 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序...

  • 死锁

    线程饥饿死锁 锁顺序死锁 动态锁顺序死锁通过锁顺序来避免死锁 避免死锁

  • 6. 使用synchronized实现死锁

    死锁定义 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序...

  • 面试官:连多线程问题你都一问三不知,还要我怎么“放水”?

    面试官:问你几个多线程相关的问题吧,说一下导致线程死锁的原因,怎么解除线程死锁? 程序员阿里:这个...死锁......

  • 十.Java并发编程的挑战

    1. 死锁 线程死锁 死锁是指两个或多个线程被阻塞等待获取某些其他线程所持有的锁。当多个线程同时需要相同的锁,但以...

  • Java多线程之死锁(Deadlock)及死锁避免(Deadlo

    线程死锁(Thread Deadlock) 数据库死锁(Database Deadlocks) 死锁避免 (Dea...

网友评论

      本文标题:线程 6. 死锁

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