【Java八股-第二十一期】死锁 - 操作系统

提纲:

🔥死锁

  • 概念

  • 必要条件

  • 解决策略

  • 活锁

一、死锁

1. 概念

  • 两个或多个并发的进程彼此占用了对方继续执行需要获取的资源,导致任意一个都无法继续执行

2.必要条件

  • 1、互斥:进程互相占用的资源必须是互斥的,即需要等待对方释放才能获取

  • 2、占有并保持:进程尝试获取下一个资源时,不会释放已有资源

  • 3、非抢占:只能由进程执行完才能释放资源

  • 4、 循环等待:若干进程间的互相占用形成一个环,即 A -> B -> C -> A

3.解决策略

  • 1、死锁预防:死锁的四个条件只要有一个不成立,就无法形成死锁

    • 破坏互斥条件问题:无法实现对共享资源操作的同步,无实用价值

    • 破坏占有并保持条件:可以进行资源的预分配,即在程序开始运行前就分配好所有资源问题:部分情况下,程序是在运行过程中动态获取资源的,预分配会给进程分配一些极少使用的资源,降低资源的利用效率

    • 破坏非抢占条件:进程无法获取到继续执行所需

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

代码鹿のJAVA八股面试题总结 文章被收录于专栏

【📫专栏目录在最底部📫】 - 本专栏适合于JAVA已经入门的学生或人士,有一定的编程基础。 - 本专栏特点: 本专刊囊括了JAVA、Spring、计算机网路、操作系统、计算机网络、MySQL、算法与数据结构、中间件等一系列知识点,总结出了高频面试考点(附有答案),事半功倍,为大家春秋招助力。 - 本专栏内容分为五章

全部评论

相关推荐

点赞 评论 收藏
分享
03-25 17:53
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务