Package com.sun.jini.thread
Class ReadersWriter
java.lang.Object
com.sun.jini.thread.ReadersWriter
An Object to control the concurrent state. Allows multiple readers or a single writer. Waiting
writers have priority over new readers. Waiting priority writers have priority over waiting
regular writers. A single thread cannot hold a lock more than once.
- Author:
- Sun Microsystems, Inc.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classInterruptedException transformed to a runtime exception. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidObtain a priority write lock.voidreaderWait(Object notifier, long time) Release a read lock, wait the given period of time or until notified by notifier, then obtain a read lock again.voidreadLock()Obtain a read lock.voidRelease a read lock.voidwaiterNotify(Object notifier) Wake up any threads waiting on this notifier.voidObtain a regular write lock.voidwriterWait(Object notifier, long time) Release a write lock, wait the given period of time or until notified by notifier, then obtain a regular write lock again.voidRelease a (regular or priority) write lock.
-
Constructor Details
-
ReadersWriter
public ReadersWriter()
-
-
Method Details
-
readLock
public void readLock()Obtain a read lock. Multiple concurrent readers allowed. -
readUnlock
public void readUnlock()Release a read lock. -
writeLock
public void writeLock()Obtain a regular write lock. Only a single writer allowed at once. -
priorityWriteLock
public void priorityWriteLock()Obtain a priority write lock. Only a single writer allowed at once. -
writeUnlock
public void writeUnlock()Release a (regular or priority) write lock. -
readerWait
Release a read lock, wait the given period of time or until notified by notifier, then obtain a read lock again. Throws ConcurrentLockException if the thread gets interrupted; in that case, the read lock is still held. -
writerWait
Release a write lock, wait the given period of time or until notified by notifier, then obtain a regular write lock again. Throws ConcurrentLockException if the thread gets interrupted; in that case, the write lock is still held. -
waiterNotify
Wake up any threads waiting on this notifier. In general, because there is no wakeup-waiting flag, this method must be called from a thread that holds a lock that conflicts with the lock that the waiter was holding. If the waiter calls writerWait, then waiterNotify can be called either under a readLock or a writeLock, but if the waiter calls readerWait, then waiterNotify should only be called under a writeLock.
-