并发和互斥

并发:多个执行单元同时并行执行,并发的执行单元对资源的调用具有竞态关系

竞态的解决一般采用互斥的机制,访问共享资源的代码区域称为临界区。临界区需要以某种互斥机制来保护,中断操作、原子操作、信号量和自旋锁设备驱动可以采用的互斥途径

自旋锁: 自旋锁首先是锁,即获取所有权上锁,执行完成解锁。其他未获取所有权的任务会进行等待直到获取到资源

信号量:这是一种睡眠锁,如果一个任务尝试获取已经被持有的信号量,信号量将任务推入等待队列,进行睡眠,信号量被释放,等待队列的任务被唤醒

自旋锁对信号量的比较:
    需求场合                   建议的加锁方法

低开销加锁                 优先使用自旋锁
短期锁定                    优先使用自旋锁
长期加锁                    优先使用信号量
中断上下文中加锁           使用自旋锁
持有锁是需要睡眠、调度     使用信号量

死锁四个必备条件:

1、互斥

2、不可抢占

3、循环等待

4、占用并等待

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值