线程竞争死锁

1.死锁

1.资源互斥:多线程或进程在同一时间只有一个线程或进程访问该资源

2.占用且请求:一个进程或线程已经有一个或多个资源,同时又请求其他的资源

3.资源不可剥夺:一旦某个线程或进程获得某个资源,就不能被其他进程或线程强制抢夺或剥夺,只有资源的占用才能完成任务后主释放

4.环形等待:进程A在等待进程B持有的资源,进程B又在等待进程C持有的资源,最终进程C又在等待进程A持有的资源,这样就形成了一个循环等待的状态

防止死锁

1.破坏资源互斥:不在控制资源的独占使用,允许多个线程或进程同时访问共享资源

缺点:现实的影响和资金的影响,共享内存很难实现

2.破坏占用且请求:采用预分配的方式,线程或进程在执行前,必须一次性的申请所有的资源,确保执行时不会有新的请求

缺点:系统的资源可能会严重的浪费,有的资源开始时使用,有的资源最后使用

3.破坏资源的不可剥夺性:允许系统强制回收已经被某个线程或进程占用的资源

缺点:比较麻烦,可能会导致剥夺前的工作失效,反复的申请释放资源对cpu,寄存器的占用比较高

4.破坏环形等待:给每个资源分配一个编号,进程或线程在请求资源时,必须按照这个编号的顺序依次请求资源

缺点:资源稳定,当增加删除时,受很大影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值