1、RReadWriteLock 使用&读写锁介绍
首先,我们先简单上个简单使用 RReadWriteLock 的 demo:
public class RedissonReadWriteLockDemo {
public static void main(String[] args) {
RedissonClient client = RedissonClientUtil.getClient("");
RReadWriteLock readWriteLock = client.getReadWriteLock("myLock");
RLock readLock = readWriteLock.readLock();
RLock writeLock = readWriteLock.writeLock();
// 场景一:先读锁,后写锁
readLock.lock();
writeLock.lock();
readLock.unlock();
writeLock.unlock();
// 场景二:重复获取读锁
readLock.lock();
readLock.lock();
readLock.unlock();
readLock.unlock();
// 场景三:先写锁,后读锁
writeLock.lock();
readLock.lock();
writeLock.unlock();
readLock.lock();
// 场景四:先写锁,再读锁
writeLock.lock();
writeLock.lock();
writeLock.unlock();
writeLock.unlock();
}
}
读写锁作用:
- 读读兼容
- 读写互斥
- 写写互斥
- 写读互斥
使用场景:
读写锁主要作用就是做到保证数据的一致性。例如有人在读数据的时候,就应该避免数据被修改,从而保证数据读取前后的一致性,其他的情况一样,例如写读,写写;但是如果是读读就没有必要做到互斥了,因为此

本文详细解析了Redisson中的读写锁实现原理,包括读锁的加锁逻辑、Lua脚本分析及watchdog续命机制。通过具体代码示例展示了不同场景下读锁的行为。
最低0.47元/天 解锁文章
1961

被折叠的 条评论
为什么被折叠?



