读写锁笔记
概况
读写锁分为读锁以及写锁。
- 读锁可以在没有写锁的情况下,进行共存
- 写锁一次只能存在一个,同时在读锁存在的时候,无法存在读锁
ReentrantReadWriteLock
通过ReentrantReadWriteLock对读写锁的原理进行解析
初始化
private ReadWriteLock lock = new ReentrantReadWriteLock();
private Lock readLock = lock.readLock();
private Lock writeLock = lock.writeLock();
与ReentrantLock一样,ReentrantReadWriteLock也使用了AQS作为同步器,也提供了公平和非公平的两种形式。WriteLock使用的为AQS的acquire
以及release
方法,而ReadLock使用的为AQS的acquireShared
以及releaseShared
方法。
接下来进行进一步的说明