ReentrantReadWriteLock

本文介绍了读写锁的基本概念,区分了读锁(共享锁)和写锁(独占锁),并详细阐述了读写锁的工作机制及应用场景。

一、原理

read write lock 读写锁

程序对一个资源的访问,一般可分为两种目标,一种是读取资源的信息,另一种是修改资源的信息,两种操作分为:读操作和写操作。
在程序对一个资源进行读操作时,是允许其他程序也可以对资源进行读操作的,也可以另一种说法,读操作是共享的,因此,读写锁中的读锁也叫共享锁;
在程序对一个资源进行写操作时,是不允许其他程序也去访问资源的,不管是写还是读操作都是不允许,写操作是排他的,独占的,因此,读写锁中的写锁也叫独占锁。
有时读写锁也会有共享-独占锁的说法。
由于读写锁的读操作是可以共享的,允许多个读操作同时进行,而写操作是独占的,只能让一个线程独占资源,其他读写操作都是阻塞的,所以读写锁适用于读操作比较多的资源。

1.读写锁处于写操作时,其他所有对资源的访问,不管是读还是写操作都要阻塞等候写操作的完成;
2.读写锁处于读操作时,所有希望对资源进行读操作的都可以得到锁进行读操作,而写操作则要阻塞等待;

3.读写锁处于读操作时,如果有线程希望对资源得到写锁,则读写锁会阻塞所有的读操作,这样可以避免写操作长时间阻塞等待写操作完成后再释放锁。

(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值