public class ReadersWriter extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ReadersWriter.ConcurrentLockException
InterruptedException transformed to a runtime exception.
|
Modifier and Type | Field and Description |
---|---|
private int |
activeReaders
The number of active readers
|
private boolean |
activeWriter
True if there is an active writer
|
private int |
waitingPriorityWriters
The number of waiting priority writers
|
private int |
waitingWriters
The number of waiting writers (both regular and priority)
|
Constructor and Description |
---|
ReadersWriter() |
Modifier and Type | Method and Description |
---|---|
void |
priorityWriteLock()
Obtain a priority write lock.
|
void |
readerWait(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.
|
void |
readLock()
Obtain a read lock.
|
void |
readUnlock()
Release a read lock.
|
void |
waiterNotify(Object notifier)
Wake up any threads waiting on this notifier.
|
void |
writeLock()
Obtain a regular write lock.
|
void |
writerWait(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.
|
void |
writeUnlock()
Release a (regular or priority) write lock.
|
private int activeReaders
private int waitingWriters
private int waitingPriorityWriters
private boolean activeWriter
public void readLock()
public void readUnlock()
public void writeLock()
public void priorityWriteLock()
public void writeUnlock()
public void readerWait(Object notifier, long time)
public void writerWait(Object notifier, long time)
public void waiterNotify(Object notifier)
Copyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.