操作系统复习:10.死锁以及如何避免死锁

本文介绍了死锁的概念,包括互斥条件、持有并等待条件、不可剥夺条件和环路等待条件,并分析了死锁产生的原因,如资源竞争。接着探讨了两种避免死锁的方法:有序资源分配法和银行家算法,强调了资源申请的顺序性和预先检查资源分配的安全性以防止死锁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

死锁的概念

死锁产生原因 

如何避免死锁 

1.有序资源分配法

2.银行家算法 


死锁的概念

死锁:当两个线程为了保护两个不同的共享资源⽽使⽤了两个互斥锁,那么这两个互斥锁应⽤不当的时 候,可能会造成两个线程都在等待对⽅释放锁,在没有外⼒的作⽤下,这些线程会⼀直相互等待,就没办法继续运⾏,这种情况就是发⽣了死锁

死锁只有同时满⾜以下四个条件才会发⽣:

①互斥条件

②持有并等待条件

③不可剥夺条件

④环路等待条件

互斥条件:指多个线程不能同时使⽤同⼀个资源

持有并等待条件:指当线程 A 已经持有了资源 1,⼜想申请资源 2,⽽资源 2 已经被线程 C 持有了,所以线程 A 就会处于等待状态,但是线程 A 在等待资源 2 的同时并不会释放⾃⼰已经持有的资源 1

 

不可剥夺条件:是指当线程已经持有了资源 ,在⾃⼰使⽤完之前不能被其他线程获取,线程 B 如果也想使⽤此资源,则只能在线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java从跨平台到跨行业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值