概念
和ReentrantLock相比,ReentrantReadWriteLock在原有的互斥锁(写锁)的基础上,添加了一把共享锁(读锁)。
名词解释
读写锁有以下三个重要的特性( 参见:ReentrantReadWriteLock读写锁详解):
(1)公平选择性:支持非公平(默认)和公平的锁获取方式,吞吐量还是非公平优于公平。
(2)重进入:读锁和写锁都支持线程重进入。
(3)锁降级:遵循获取写锁、获取读锁再释放写锁的次序,写锁能够降级成为读锁。
工作原理/方式
这个链接 ReentrantReadWriteLock读写锁详解 - 平凡希 - 博客园 描述的非常详细,此处不在赘述,截其中的读锁和写锁的流程图如下:
类元素构成:
读锁获取:
写锁获取: