public class ReadWriteLockNamedLock extends NamedLockSupport
ReadWriteLock instances. The adapted lock MUST SUPPORT
reentrancy, non re-entrant locks will NOT work. It is the responsibility of an adapting lock, to ensure that
above lock requirement stands.| Modifier and Type | Class and Description |
|---|---|
private static class |
ReadWriteLockNamedLock.Step |
| Modifier and Type | Field and Description |
|---|---|
private java.util.concurrent.locks.ReadWriteLock |
readWriteLock |
private java.lang.ThreadLocal<java.util.Deque<ReadWriteLockNamedLock.Step>> |
threadSteps |
logger| Constructor and Description |
|---|
ReadWriteLockNamedLock(java.lang.String name,
NamedLockFactorySupport factory,
java.util.concurrent.locks.ReadWriteLock readWriteLock) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
lockExclusively(long time,
java.util.concurrent.TimeUnit unit)
Tries to lock exclusively, may block for given time.
|
boolean |
lockShared(long time,
java.util.concurrent.TimeUnit unit)
Tries to lock shared, may block for given time.
|
void |
unlock()
Unlocks the lock, must be invoked by caller after one of the
NamedLock.lockShared(long, TimeUnit) or NamedLock.lockExclusively(long, TimeUnit). |
close, nameprivate final java.lang.ThreadLocal<java.util.Deque<ReadWriteLockNamedLock.Step>> threadSteps
private final java.util.concurrent.locks.ReadWriteLock readWriteLock
public ReadWriteLockNamedLock(java.lang.String name,
NamedLockFactorySupport factory,
java.util.concurrent.locks.ReadWriteLock readWriteLock)
public boolean lockShared(long time,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException
NamedLocktrue.java.lang.InterruptedExceptionpublic boolean lockExclusively(long time,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException
NamedLocktrue.java.lang.InterruptedExceptionpublic void unlock()
NamedLockNamedLock.lockShared(long, TimeUnit) or NamedLock.lockExclusively(long, TimeUnit).