读写信号量(rw_semaphore)

更多资料下载,冲击月薪过万,一线经验工程师录制, 干货满满的嵌入式视频教程,请点击淘宝店:wanglitao.taobao.com
  1. 核心原理
    读写信号量是睡眠型的读写锁,区分读共享和写独占,适用于读多写少的场景(如内核数据结构的查询与修改)。

  2. 关键特性
    读共享:多个读线程可同时持有锁,写线程阻塞。
    写独占:写线程持有锁时,所有读 / 写线程阻塞。
    适用场景:进程上下文、临界区执行时间较长的读多写少场景。

  3. 核心接口

#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内核编程