读写锁

说读写锁之前,先解释一下什么是自旋锁?
自旋锁就是,若P不到资源,它不会被挂起,而是一直去看是否有资源就绪。

读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。

这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,

一个读写锁同时只能有一个写者或多个读者(与 CPU数相关),但不能同时既有读者又有写者。和前面一样,有响应的接口来完成读写锁的功能。

一、读写锁的类型pthread_rwlock_t;
二、读写锁的加锁方式有两种
(1)读者需要加读锁:pthread_rwlock_rdlock
(2)写者需要加写锁:pthread_rwlock_wrlock
返回值:加锁成功-->ret==0,失败-->ret==error num

三、读写锁的初始化与释放:
返回值:加锁成功-->ret==0,失败-->ret==error num

四、读写锁的应用:
读写锁的定义,以及要访问的临界资源 buf,读者读取 buf 的值,写者修改 buf 的值
读者:

写者:

读写锁的初始化、销毁与线程的创建、等待:

执行结果:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值