首页 理论教育 Linux驱动程序开发实例:读写信号量与降级写为读

Linux驱动程序开发实例:读写信号量与降级写为读

时间:2023-10-19 理论教育 版权反馈
【摘要】:信号量也衍生出了一种区分读写操作的同步机制,即读写信号量。它的原理与读写锁差不多,读写信号量相关的函数如下,相信读者不难看出它们的用法。void init_rwsem;void down_read;int down_read_trylock;void up_read;void down_write;int down_write_trylock;void up_write;读写信号量允许将写者降级为读者,这样能增强并发性,提高效率。void downgrade_write;downgrade_write使用的伪代码如下:struct rw_semaphore rw_sp;down_write;…downgrade_write;//降级写为读…

Linux驱动程序开发实例:读写信号量与降级写为读

信号量也衍生出了一种区分读写操作的同步机制,即读写信号量(rw_semaphore)。它的原理与读写锁差不多,读写信号量相关的函数如下,相信读者不难看出它们的用法。

void init_rwsem(struct rw_semaphore*sem);

void down_read(struct rw_semaphore*sem);

int down_read_trylock(struct rw_semaphore*sem);

void up_read(struct rw_semaphore*sem);

void down_write(struct rw_semaphore*sem);

int down_write_trylock(struct rw_semaphore*sem);

void up_write(struct rw_semaphore*sem);

读写信号量允许将写者降级为读者,这样能增强并发性,提高效率。(www.xing528.com)

void downgrade_write(struct rw_semaphore*sem);

downgrade_write使用的伪代码如下:

struct rw_semaphore rw_sp;

down_write(&rw_sp);

downgrade_write(&rw_sp);//降级写为读

up_read(&rw_sp);

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈