死锁的四个必要条件

  • 互斥条件:该资源任意一个时刻只由一个线程占用。
  • 请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放。
  • 不剥夺条件: 线程已获得的资源在未使用完之前不能被其他线程强行剥夺,只有自己使用完毕后才释放资源。
  • 循环等待条件: 若干线程之间形成一种头尾相接的循环等待资源关系。

怎么便于记忆?

1.资源互斥性(资源的属性,不会同时属于/分配给多个进程)->2.持有和等待(进程被分配(持有)资源后而且在等待(申请)其他资源)->3不可剥夺(对于已分配的资源,不可再强制收回来)->4.环形等待(进程之间资源等待形成相互依赖,互不礼让)

用再通俗的话,进一步解释这个逐渐升级的状况。1->2->3->4是资源分配逐渐条件递进、加强、升级的过程:

资源是互斥的每次属于一个进程(1.互斥);

资源分配了我占着而且我还要申请其他资源(2.持有和等待);

我占着的资源你没法拿,你占着的资源我没法拿(3.不可剥夺);

我申请的资源在你那,你申请的资源在我这(4.循环等待),最终形成了一个相互占有、相互等待的僵持局面~

如何预防死锁?

破坏死锁的产生的必要条件即可:

- 破坏请求与保持条件:一次性申请所有的资源。

- 破坏不剥夺条件:占用部分资源的线程进一步申请其他资源时,如果申请不到,可以主动释放它占有的资源。

- 破坏循环等待条件:靠按序申请资源来预防。按某一顺序申请资源,释放资源则反序释放。破坏循环等待条件.

重生之八股仙帝 文章被收录于专栏

曾有一千古奇人,精修八股文,成遁世之高人,彻天彻地畅游天地间。 今人皆忙忙,急于求成,岂不知八股乃道门口径,背负天人,若经熟读背诵,更能开拓智慧之门,探寻未来之路。 天下繁华,不尽长夜,唯有读书为伴,熟读八股文更是攀登高峰之路。磨砺文字,升腾智慧,唯有勤玉立志,始可破天荒,登临九重不竭之巅! 吾辈修炼之路,虽曲折荆棘,但信念不曾磨灭,唯有铭记八股精髓,方能指引灵魂归宿,成就一生辉煌!

全部评论

相关推荐

爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-20 20:30
工作没了,落户没了,什么都没了
梦想是成为七海千秋:是因为什么原因呀,如果是因为导师恶意卡你就和他爆了
点赞 评论 收藏
分享
评论
2
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务