什么是死锁:
死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去,这是一个严重的问题,因为死锁会让你的程序挂起无法完成任务,死锁的发生必须满足一下四个条件:
1、互斥条件:一个资源每次只能被一个进程使用
2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
3、不剥夺条件:进程已获得的资源,在未使用完之前,不能进行强行剥夺
4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
如何解决死锁:
1、预防死锁:通过设置一些限制条件,去破坏产生死锁的必要条件
2、避免死锁:在资源分配过程中,使用某种方法避免系统进入不安全的状态,从而避免发生死锁
3、检测死锁:允许死锁的发生,但是通过系统的检测之后,采取一些措施,将死锁清除掉
4、解除死锁:该方法与检测死锁配合使用