目录
死锁的概念
死锁:当两个线程为了保护两个不同的共享资源⽽使⽤了两个互斥锁,那么这两个互斥锁应⽤不当的时 候,可能会造成两个线程都在等待对⽅释放锁,在没有外⼒的作⽤下,这些线程会⼀直相互等待,就没办法继续运⾏,这种情况就是发⽣了死锁
死锁只有同时满⾜以下四个条件才会发⽣:
①互斥条件
②持有并等待条件
③不可剥夺条件
④环路等待条件
互斥条件:指多个线程不能同时使⽤同⼀个资源
持有并等待条件:指当线程 A 已经持有了资源 1,⼜想申请资源 2,⽽资源 2 已经被线程 C 持有了,所以线程 A 就会处于等待状态,但是线程 A 在等待资源 2 的同时并不会释放⾃⼰已经持有的资源 1
不可剥夺条件:是指当线程已经持有了资源 ,在⾃⼰使⽤完之前不能被其他线程获取,线程 B 如果也想使⽤此资源,则只能在线