死锁

产生的原因
多个线程持有彼此需要的资源不放手。

死锁特征(出现4个特征也有可能不会死锁):
1、互斥:一个时间只能有一个进程使用资源
2、持有并等待:进程保持至少一个资源正在等待其他进程持有的额外资源
3、无抢占:一个资源只能被进程完成后自愿释放
4、循环等待:进程互相等待各自的资源

解决死锁的方法:

死锁
死锁预防:
死锁
死锁

死锁避免:
死锁
银行家算法:死锁避免算法
死锁

死锁检测算法:
死锁

死锁恢复:

死锁
死锁