读写信号量(rw_semaphore)
更多资料下载,冲击月薪过万,一线经验工程师录制,
干货满满的嵌入式视频教程,请点击淘宝店:wanglitao.taobao.com
核心原理
读写信号量是睡眠型的读写锁,区分读共享和写独占,适用于读多写少的场景(如内核数据结构的查询与修改)。关键特性
读共享:多个读线程可同时持有锁,写线程阻塞。
写独占:写线程持有锁时,所有读 / 写线程阻塞。
适用场景:进程上下文、临界区执行时间较长的读多写少场景。核心接口
#include <linux/rwsem.h>
struct rw_semaphore rwsem;
init_rwsem(&rwsem);
// 读获取
down_read(&rwsem);
up_read(&rwsem);
// 写获取
down_write(&rwsem);
up_write(&rwsem);
驱动开发核心理论,Linux内核开发入门实战视频教程:《Linux内核编程》,具有一线芯片原厂开发经验的驱动工程师录制,详情点击:王利涛老师个人淘宝店:Linux内核编程