线程死锁解释

线程死锁:两个线程或者以上的线程并发执行时,因抢夺共享资源而造成的互相等待的现象。
3、死锁的四要素

只要同时满足这四个条件,就肯定会死锁:

互斥条件
持有并等待条件
不可剥夺条件
环路等待条件

4、避免死锁的三种思路

避免死锁,只需要破坏掉四大条件的其中一个即可。

互斥条件没办法破坏,本来锁的目的就是互斥

所以只需要破坏以下三项中的其中一项即可:

破坏持有并等待条件:一个线程必须一次性申请所有的锁,不能单独持有某一个锁
破坏不可剥夺条件:一个线程获取不到锁时,就先主动释放持有的所有锁
破坏环路等待条件:规定各个线程获取锁的顺序

注意:三种思路,但是在具体的场景中,每种做法的开销都是不同的,需要找到开销最低的方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值