操作系统
操作系统
死锁需要满足的条件
- 互斥:资源使用必须互斥,多个进程不能同时使用
- 循环等待:请求资源的进程都在等待上一个进程占用的资源,形成一个回环
- 非剥夺:进程已获得的资源在完成操作时不可以被剥夺,需要进程自己主动释放
- 请求与保持:进程获得资源后,又对其他资源进程请求并且不释放自己已经获得的资源
解除死锁的方法
破环满足的任一条件,如:
- 乐观锁,破坏互斥条件(请求资源时不会对资源进行上锁)
- 剥夺资源,即当进程新的资源未得到满足时,释放已占有的资源,从而破坏不可剥夺的条件,数据库deadlock超时
- 资源有序分配法:系统给每类资源赋予一个序号,每个进程按编号递增的请求资源,从而破坏环路等待的条件,转账场景
- 资源一次性分配,从而剥夺请求和保持条件、tryLock
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 停云笺!
评论