(一)什么是死锁?
死锁是指两个或多个进程在争夺系统资源时,由于互相等待对方释放资源而无法继续执行的状态。
(二)如何避免死锁
死锁只有同时满足以下四个条件才会发生:
互斥条件:一个进程占用了某个资源时,其他进程无法同时占用该资源。
持有并等待条件:一个进程可以在等待其他资源的同时持有一些资源。
不可剥夺条件:资源不能被强制性地从一个进程中剥夺,只能由持有者自愿释放。
环路等待条件:多个进程之间形成一个循环等待资源的链,每个进程都在等待下一个进程所占有的资源。
只需要破坏上面一个条件就可以避免死锁,最常见的并目可行的就是使用资源有序分配法(让所有进程按照相同的顺序请求资源),来破坏环路等待条件。