【同步机制】【自旋锁】【信号量】

1、读写自旋锁

rwlock

读写自旋锁(rwlock)是一种比自旋锁粒度更小的自旋锁机制,它保留了“自旋”的概念。

但是在写操作方面,只能最多有一个写进程,在读方面,同时可拥有多个执行单元,当然读和写也不能同时进行。

一句话:防写不防读

write_lock_irqsave(lock,flags);//写者获取读写锁,同时保存中断标志,并禁止本地中断

write_unlock_irqstore(lock,flags);

2、信号量

读写信号量是一种比信号量颗粒大的互斥机制,允许读之间并发执行,写之间不能并发,防写不防读。

信号量是可能引起阻塞

down_write(&sem);   //写时获取信号量

......              //临界区代码
up_write(&sem);     //写时释放信号量
void down_write(struct rw_semaphore* rw_sem);       //获取写信号量
int down_write_trylock(struct rw_semaphore* rw_sem);//尝试获取写信号量
void up_write(struct rw_semaphore* rw_sem);         //释放写信号量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值