线程二十二:读写锁

读写锁也是一种在日常开发中使用较多的锁,它主要应用在读比较多而写比较少的情况下。举个例子,比如网络上的词条大家通常都是在读,但是也有需要修改的时候,比如版本的升级,提升词条解释的完善性等方面。这种情况下需要一种能够提供读取数据的高并发效率锁,同时在写的时候能保证安全的互斥访问,这个时候需要使用ReadWriteLock接口。

ReadWriteLock接口维护了一对锁,一个是针对读操作的锁,一个是针对写操作的锁。读锁在没有写操作的时候会被多个读线程同时持有,这样极大提高了读取的效率。写操作是互斥的,只有一个线程可以修改数据。ReadWriteLock接口声明了两个重要的方法:1.readLock方法用来返回读锁。2.writeLock方法用来返回写锁。

可重入读写锁ReentrantReadWriteLock实现了接口ReadWriteLock,可以通过一个无参的构造器创建一个非公平策略的重入读写锁实例,也可以通过给它的构造器传递一个boolean类型的数据来创建一个指定公平策略的重入读写锁实例。为了演示重入读写锁的应用,我们看一个实例:

例子描述了一个重入读写锁的利用,这个例子只是简单的描述了一下重入读写锁的应用,没有考虑其他因素(读者可以自行完善),例子中使用了集合LinkedList,它本身并不是线程安全的。

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值