Class PrioritySemaphore
java.lang.Object
EDU.oswego.cs.dl.util.concurrent.Semaphore
EDU.oswego.cs.dl.util.concurrent.QueuedSemaphore
EDU.oswego.cs.dl.util.concurrent.PrioritySemaphore
- All Implemented Interfaces:
Sync
A Semaphore that grants requests to threads with higher
Thread priority rather than lower priority when there is
contention. Ordering of requests with the same priority
is approximately FIFO.
Priorities are based on Thread.getPriority.
Changing the priority of an already-waiting thread does NOT
change its ordering. This class also does not specially deal with priority
inversion -- when a new high-priority thread enters
while a low-priority thread is currently running, their
priorities are not artificially manipulated.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class QueuedSemaphore
QueuedSemaphore.WaitQueue -
Field Summary
Fields inherited from class QueuedSemaphore
wq_Fields inherited from interface Sync
ONE_CENTURY, ONE_DAY, ONE_HOUR, ONE_MINUTE, ONE_SECOND, ONE_WEEK, ONE_YEAR -
Constructor Summary
ConstructorsConstructorDescriptionPrioritySemaphore(long initialPermits) Create a Semaphore with the given initial number of permits. -
Method Summary
Methods inherited from class QueuedSemaphore
acquire, attempt, getSignallee, precheck, recheck, release, release
-
Constructor Details
-
PrioritySemaphore
public PrioritySemaphore(long initialPermits) Create a Semaphore with the given initial number of permits. Using a seed of one makes the semaphore act as a mutual exclusion lock. Negative seeds are also allowed, in which case no acquires will proceed until the number of releases has pushed the number of permits past 0.
-