有几个特性,读锁是共享的,能被多个线程占有。写锁是独占的。只能有一个线程占有。获取了写锁能在获取读锁成为锁降级。获取了读锁不能再获取写锁。也不支持锁升级。

写锁的获取

ReentrantReadWriteLock写锁源码分析

tryAcquire方法

ReentrantReadWriteLock写锁源码分析

writerShouldBlock方法,非公平锁直接返回false,公平锁如下。

ReentrantReadWriteLock写锁源码分析

写锁的释放

ReentrantReadWriteLock写锁源码分析

tryRelease方法

ReentrantReadWriteLock写锁源码分析

相关文章: