Interface ReadWriteLockManager

All Known Implementing Classes:
AbstractReadWriteLockManager, ReadPrefReadWriteLockManager, StampedLockManager, WritePrefReadWriteLockManager

public interface ReadWriteLockManager
A 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 Link icon

    Modifier and Type
    Method
    Description
    Gets a read lock.
    Gets an exclusive write lock.
    boolean
    Returns false if there are no active read locks, otherwise returns true.
    boolean
    Returns false if there are no active write locks, otherwise returns true.
    Gets a read lock, if available.
    Gets an exclusive write lock, if available.
    void
    Blocks until all read locks have been released.
    void
    Blocks until all write locks have been released.
  • Method Details Link icon

    • tryReadLock Link icon

      Lock tryReadLock()
      Gets a read lock, if available. This method will return null if the read lock is not immediately available.
    • getReadLock Link icon

      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 was interrupted.
    • tryWriteLock Link icon

      Lock tryWriteLock()
      Gets an exclusive write lock, if available. This method will return null if the write lock is not immediately available.
    • getWriteLock Link icon

      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 was interrupted.
    • isWriterActive Link icon

      boolean isWriterActive()
      Returns false if there are no active write locks, otherwise returns true.
    • isReaderActive Link icon

      boolean isReaderActive()
      Returns false if there are no active read locks, otherwise returns true.
    • waitForActiveWriter Link icon

      void waitForActiveWriter() throws InterruptedException
      Blocks until all write locks have been released.
      Throws:
      InterruptedException - In case the thread requesting the lock was interrupted.
    • waitForActiveReaders Link icon

      void waitForActiveReaders() throws InterruptedException
      Blocks until all read locks have been released.
      Throws:
      InterruptedException - In case the thread requesting the lock was interrupted.