Interface ReadWriteLockManager
-
- All Known Implementing Classes:
AbstractReadWriteLockManager,ReadPrefReadWriteLockManager,StampedLockManager,WritePrefReadWriteLockManager
public interface ReadWriteLockManagerA lock manager that manages a multi-read, single-write lock. This lock manager allows multiple read locks to be active at the same time. The write lock is exclusive, meaning that no other read- or write locks may be active at the same time.- Author:
- Arjohn Kampman
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description LockgetReadLock()Gets a read lock.LockgetWriteLock()Gets an exclusive write lock.booleanisReaderActive()Returnsfalseif there are no active read locks, otherwise returnstrue.booleanisWriterActive()Returnsfalseif there are no active write locks, otherwise returnstrue.LocktryReadLock()Gets a read lock, if available.LocktryWriteLock()Gets an exclusive write lock, if available.voidwaitForActiveReaders()Blocks until all read locks have been released.voidwaitForActiveWriter()Blocks until all write locks have been released.
-
-
-
Method Detail
-
tryReadLock
Lock tryReadLock()
Gets a read lock, if available. This method will return null if the read lock is not immediately available.
-
getReadLock
Lock getReadLock() throws InterruptedException
Gets a read lock. This method blocks until the read lock is available.- Throws:
InterruptedException- In case the thread requesting the lock wasinterrupted.
-
tryWriteLock
Lock tryWriteLock()
Gets an exclusive write lock, if available. This method will return null if the write lock is not immediately available.
-
getWriteLock
Lock getWriteLock() throws InterruptedException
Gets an exclusive write lock. This method blocks until the write lock is available.- Throws:
InterruptedException- In case the thread requesting the lock wasinterrupted.
-
isWriterActive
boolean isWriterActive()
Returnsfalseif there are no active write locks, otherwise returnstrue.
-
isReaderActive
boolean isReaderActive()
Returnsfalseif there are no active read locks, otherwise returnstrue.
-
waitForActiveWriter
void waitForActiveWriter() throws InterruptedExceptionBlocks until all write locks have been released.- Throws:
InterruptedException- In case the thread requesting the lock wasinterrupted.
-
waitForActiveReaders
void waitForActiveReaders() throws InterruptedExceptionBlocks until all read locks have been released.- Throws:
InterruptedException- In case the thread requesting the lock wasinterrupted.
-
-