Блокировка повторного входа в Redisson для чтения и записи

1. Обзор реентерабельных блокировок чтения-записи

Java-объект Redisson с распределенной реентерабельной блокировкой чтения-записи (RReadWriteLock) реализует интерфейс java.util.concurrent.locks.ReadWriteLock. И блокировка чтения, и блокировка записи наследуют интерфейс RLock.

Распределенные реентерабельные блокировки чтения-записи позволяют одновременно блокировать несколько блокировок чтения и одну блокировку записи .

2. Практика

Использование следующее:

RReadWriteLock rwlock = redisson.getReadWriteLock("锁的名字");
// 最常见的使用方法
rwlock.readLock().lock();
// 或
rwlock.writeLock().lock();

или же

// 10秒钟以后自动解锁
// 无需调用unlock方法手动解锁
rwlock.readLock().lock(10, TimeUnit.SECONDS);
// 或
rwlock.writeLock().lock(10, TimeUnit.SECONDS);
// 尝试加锁,最多等待100秒,上锁以后10秒自动解锁
boolean res = rwlock.readLock().tryLock(100, 10, TimeUnit.SECONDS);
// 或
boolean res = rwlock.writeLock().tryLock(100, 10, TimeUnit.SECONDS);
...
lock.unlock();

рекомендация

отblog.csdn.net/sinat_34241861/article/details/112363999