EDU.oswego.cs.dl.util.concurrent
Class PrioritySemaphore
public
class
PrioritySemaphore
extends QueuedSemaphore
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.
[ Introduction to this package. ]
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.