read-write Lock

Read-Write Lock

同样是保护数据,RW锁比mutex提供更好的并发性,因为RW锁有两三种状态,读锁,写锁,未锁。非常适合保护读多写少的操作需求!

数据结构

pthread_rwlock_t

pthread_rwlockattr_t

读写锁的操作

int pthread_rwlock_init(pthread_rwlock_t  *restrict rwlock,const pthread_rwlockattr_t *restrict attr);

int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);

int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);

int pthread_rwlock_unlock(pthread_rwlock_t *rwlock);


int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);

int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);


int pthread_rwlock_timedrdlock(pthread_rwlock_t *restrict rwlock,const struct timespec *restrict tsptr);

int pthread_rwlock_timedwrlock(pthread_rwlock_t *restrict rwlock,const struct timespec *restrict tsptr);


int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);

使用方法和mutx的基本是一样的。

读写锁的属性操作

int pthread_rwlockattr_init(pthread_rwlockattr_t *attr);

int pthread_rwlockattr_destroy(pthread_rwlockattr_t *attr);

int pthread_rwlockattr_getpshared(pthread_rwlockattr_t *restrict attr,const int *restrict pshared);

int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *attr,int pshared);

pshared的值有两个,一个是PTHREAD_PROCESS_PRIVATE,另一个是PTHREAD_PROCESS_SHARED。用法和mutex的一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值