主要有以下四种方法:
把头埋在沙子里,假装根本没发生问题。
因为解决死锁问题的代价很高,因此鸵鸟策略这种不采取任务措施的方案会获得更高的性能。
当发生死锁时不会对用户造成多大影响,或发生死锁的概率很低,可以采用鸵鸟策略。
大多数操作系统,包括 Unix,Linux 和 Windows,处理死锁问题的办法仅仅是忽略它
不试图阻止死锁,而是当检测到死锁发生时,采取措施进行恢复
死锁检测
通常是将进程和资源组织成图,如果图存在环路,那就是检测到了死锁
死锁恢复
在程序运行之前预防发生死锁,总的来说就是破坏死锁的条件
破坏互斥条件
例如假脱机打印机技术允许若干个进程同时输出,唯一真正请求物理打印机的进程是打印机守护进程。
破坏占有和等待条件
一种实现方式是规定所有进程在开始执行前请求所需要的全部资源。
破坏不可抢占条件
破坏环路等待
给资源统一编号,进程只能按编号顺序来请求资源
在程序运行时避免发生死锁
总的来说就是检测状态是否不安全,如果不安全,就选择不进入这个状态