Linux并发与竞争

Linux并发与竞争

锁类型优点缺点/使用注意适用场景
自旋锁忙等待,响应性快忙等待浪费处理器时间,降低系统性能短时期的轻量级加锁
读写自旋锁允许多个线程持有读锁。
只允许一个线程持有写锁,并且此线程不允许读操作。
一次只允许一个写操作,也就是只能有一个线程持有写锁。有多个线程需要读取共享资源,但是只有一个线程需要写共享资源的情景。
顺序锁顺序锁由读写锁衍生而来,顺序锁可以在写时进行读写,实现同时读写。如果在写时发生了读操作,需要重新读取数据。同时需要读写的数据。
信号量可以使得线程进入休眠状态,可以提高处理器的使用效率。1:信号量不适于中断中,因为信号量会引起线程休眠。
2:信号量会导致线程休眠,休眠则对应着一定会存在唤醒,则会带来系统开销。
1:因为信号量可以使等待资源线程进入休眠状态,因此适用于那些占用资源比较久的场合。
2:如果共享资源持有时间较短,则不适合使用信号量,因为频繁的休眠,唤醒会加大系统的开销,并且开销远大于信号量带来的优势。
互斥体保护共享资源,一次只有一个线程能访问共享资源。1:mutex可以导致休眠,因此不能在中断中使用mutex,中断中只能使用自旋锁
2:mutex不能递归上锁和解锁
1:占用资源时间比较久的场合

PS:

  • 将信号量的值设为1就可以实现互斥体。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值