IPC笔记之读写锁

1、概述

读写锁(read-write lock),也称为共享独占锁(shared-exclusive 锁),写是独占,读是共享。

需要考虑的同步问题:可以同时读,不可以同时写,读写是互斥的。

2、读写锁的数据类型是:pthread_rwlock_t。函数如下:

int pthread_wrlock(pthread_rwlock_t *rwptr); 夺取写入锁:如果该锁已由另一个写入者持有,或者一个或多个读出者持有,则阻塞
int pthread_rdlock(pthread_rwlock_t *rwptr); 夺取读出锁:如果该锁由某个写入者持有,则阻塞
int pthread_unlock(pthread_rwlock_t *rwptr); 释放一个读入锁或者写出锁(这里是写者优先的原则)

int pthread_tryrdlock(pthread_rwlock_t *rwptr); :如果不满足条件,返回EBUSY
int pthread_trywrlock(pthread_rwlock_t *rwptr); :如果不满足条件,返回EBUSY

3、实现:用两个条件变量和一个互斥锁可以实现读写锁,具体实现见《UNP卷二》的相关章节。

4、读写锁属性:类似于互斥锁和条件变量。(略)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值