定义及特点:
锁的用途可以明确地分为读取和写入两个场景。一方面,写入数据时,不能有其他代码并发地写数据,写操作要求完全排斥;另一方面,读取数据时,只需要求其他程序不对数据进行写操作就行了。一个或多个读任务可以并发是有读者锁;用于写的锁最多只能被1个写任务持有,而且不能有并发的读操作。
读/写锁也叫做共享/排斥锁。
1、 初始化锁
DEFINE_RWLOCK(mr_rwlock);
2、使用锁
| 方法 | 描述 |
|---|---|
| read_lock(&mr_rwlock) | 获取指定的读锁 |
| read_unlock(&mr_rwlock) | 释放指定的读锁 |
| read_lock_irq(&mr_rwlock) | 获取指定的读锁,禁止中断 |
| read_unlock_irq(&mr_rwlock) | 释放指定的读锁,开中断 |
| read_lock_irqsave(&mr_rwlock) | 获取指定的读锁,储存中断当前状态并禁止中断 |
| read_unlock_irqsave(&mr_rwlock) | 释放指定的读锁,开中断并恢复到指定的前状态 |
| write_lock(&mr_rwlock) | 获取指定的写锁 |
| write_unlock(&mr_rwlock) | 释放指定的写锁 |
| write_lock_irq(&mr_rwlock) | 获取指定的写锁,禁止中断 |
| write_unlock_irq(&mr_rwlock) | 释放指定的写锁,开中断 |
| write_lock_irqsave(&mr_rwlock) | 获取指定的写锁,储存中断当前状态并禁止中断 |
| write_unlock_irqsave(&mr_rwlock) | 释放指定的写锁,开中断并恢复到指定的前状态 |
最后
以上就是糟糕砖头最近收集整理的关于读写锁的全部内容,更多相关读写锁内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复