线程的同步之读写锁rwlock(二)

1.什么是读写锁?

读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程。当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步,

相对互斥量只有加锁和不加锁两种状态,读写锁有三种状态:读模式下的加锁,写模式下的加锁,不加锁。

读写锁的使用规则:

  ● 只要没有写模式下的加锁,任意线程都可以进行读模式下的加锁

  ● 只有读写锁处于不加锁状态时,才能进行写模式下的加锁;

 

pthread_rwlock_init():该函是对pthread_rwlock_t类型的读写锁进行初始化。

pthread_rwlock_destroy ():该函是对pthread_rwlock_t类型的读写锁进行初始化。

pthread_rwlock_wrlock():该函数是写加锁

 

pthread_rwlock_rdlock():该函数是对读加锁

pthread_rwlock_unlock();该函数是对读加锁,写加锁进行解锁操作。

2.程序代码

结果分析:

当多线程中有读写锁的时候,在读模式加锁的情况下,所有线程都可以共享其资源,若其中有写模式加锁的情况下,若运行到写模式的加锁,必须先运行写模式加锁,在此期间其他的线程不能运行,等对其写模式加锁解锁之后其他的线程才能运行。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值