什么是死锁,关于死锁问题

死锁是指多个进程之间相互等待对方的资源,而在得到对方资源之前又不释放自己的资源,这样就造成循环等待的一种现象。
产生死锁有4个必要条件:
互斥条件
不可抢占条件
保持与等待条件
循环等待条件

银行家算法
所谓银行家算法,是指在分配资源之前先看清楚,资源分配后是否会导致系统死锁
如果会死锁,则不分配,否则分配。

解决死锁的策略
1、死锁预防
2、死锁避免
3、死锁检测
4、死锁解除

转载于:https://www.cnblogs.com/chen57long/p/4985011.html

死锁是指两个或多个进程(或线程)互相持有对方所需要的资源,同时又等待对方释放资源,从而导致所有进程都被阻塞,无法继续执行,并最终崩溃的现象。 死锁的发生通常需要同时满足以下4个条件,即互斥、持有和等待、非抢占以及循环等待。其中,互斥指多个进程不能同时访问同一个资源;持有和等待指一个进程已经持有了某个资源,但又在等待其他资源;非抢占指资源不能被强制性地从一个进程中夺取;循环等待指多个进程之间形成了一个环路,每个进程都在等待下一个进程所持有的资源。 为了避免死锁,可以通过以下几种方式: 1. 避免互斥:可以采用共享资源的方式来避免互斥,即多个进程可以同时访问同一个资源。 2. 避免持有和等待:可以采用一次性申请所有需要的资源,或者在申请资源时释放已经持有的资源,从而避免持有和等待的情况。 3. 避免循环等待:可以对资源进行编号,并规定进程只能按编号递增的顺序来申请资源,从而避免循环等待的情况。 4. 强制性地剥夺资源:可以对资源进行抢占,从而避免资源被无限期地占用。 总之,避免死锁需要在设计阶段就考虑到资源的使用和分配,以及进程之间的互动方式,从而避免上述4个条件的同时满足。同时,在实际应用中,可以采用一些算法和工具来检测和避免死锁的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值