1、用法
//初始化读锁和写锁
ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
ReentrantReadWriteLock.ReadLock rlock = rwl.readLock();
ReentrantReadWriteLock.WriteLock wlock = rwl.writeLock();
//加解锁
rlock.lock();
wlock.lock();
常见的用于cache一类读多写少的场景。使用ReentrantReadWriteLock。
2、原理。
readLock支持多线程同时获取锁。
writeLock与其他锁互斥。
参考这个帖子,不在赘述。
https://blog.youkuaiyun.com/yanyan19880509/article/details/52435135
https://blog.youkuaiyun.com/prestigeding/article/details/53286756