美文网首页C和C++常用
死锁及死锁的四个必要条件、预防死锁、解除死锁

死锁及死锁的四个必要条件、预防死锁、解除死锁

作者: 从此110 | 来源:发表于2020-03-09 14:39 被阅读0次

死锁是多个线程在运行过程中互相竞争资源发生的僵局,若无外力作用,它们都无法推进下去。死亡如风,常伴吾身。窝窝头,嘿嘿!

死锁的四个必要条件

互斥条件:一个资源每次只能被一个进程使用。
请求和保持条件:一个进程因为请求资源而阻塞时,对已获得的资源保持不放。
不剥夺条件:进程已经获得的资源在没有使用完之前,不能强行剥夺。
循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
解决死锁的基本方法

预防死锁:

1)资源一次性分配:一次性分配所有资源,这样就不会有请求了(破坏请求条件)

2)只要有一个资源得不到分配,就不给这也进程分配其他的资源(破坏保持条件)

3)可剥夺资源:即当某进程获得了部分资源,但得不到其它资源,则释放已占有的资源(破坏不剥夺条件)

4)资源有序分配法:系统给每个资源赋予一个编号,每一个进程按照编程递增的顺序请求资源,释放则相反(破坏环路等待条件)

解除死锁:

常用的有:

1)剥夺资源:从其他进程剥夺足够数量的资源给死锁进程,以解除死锁状态;

2)撤销进程:可以直接撤销死锁进程或撤销代价最小的进程,直至有足够的资源可用;

相关文章

  • java多线程笔记

    产生死锁的四个必要条件 处理死锁的基本方法 死锁预防 死锁避免 死锁检测 死锁解除 https://blog.cs...

  • 死锁

    死锁的4个必要条件互斥请求保持不可剥夺环路 死锁的处理鸵鸟策略预防策略避免策略检测与解除死锁 如有不当、错误之处,...

  • 揭秘:“死锁”四个必要条件的合理解释

    《“死锁”四个必要条件的合理解释》分为三个部分: 【1】“死锁”的含义 【2】“死锁”的原因及四个必要条件的合理解...

  • “死锁”四个必要条件的合理解释

    《“死锁”四个必要条件的合理解释》分为三个部分: 【1】“死锁”的含义 【2】“死锁”的原因及四个必要条件的合理解...

  • 死锁及死锁的四个必要条件、预防死锁、解除死锁

    死锁是多个线程在运行过程中互相竞争资源发生的僵局,若无外力作用,它们都无法推进下去。死亡如风,常伴吾身。窝窝头,嘿...

  • Java死锁

    什么是死锁 死锁检测 产生死锁的四个必要条件 如何避免死锁 死锁 死锁,指两个或多个线程之间,由于互相持有对方需要...

  • 解决死锁的4种基本方法(值得收藏)

    解决死锁的4种基本方法(文末有惊喜) 1、预防死锁:通过设置一些限制条件,去破坏产生死锁的必要条件 2、避免死锁:...

  • 死锁

    第11章:死锁和进程通信 死锁概念 死锁处理方法 死锁预防(Deadlock Prevention) 死锁避免(D...

  • 死锁

    死锁?原因?必要条件?预防?避免?解除/恢复? 参考——https://www.cnblogs.com/bopo/...

  • java并发--java死锁

    本篇结构: 前言 什么是死锁 产生死锁的必要条件 死锁的代码示例 死锁排查 如何避免死锁 总结 一、前言 今天被问...

网友评论

    本文标题:死锁及死锁的四个必要条件、预防死锁、解除死锁

    本文链接:https://www.haomeiwen.com/subject/burpdhtx.html