## EDU.oswego.cs.dl.util.concurrent
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

    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. ]

Nested Class Summary
`protected static class` `PrioritySemaphore.PriorityWaitQueue`

Nested classes/interfaces inherited from class EDU.oswego.cs.dl.util.concurrent.QueuedSemaphore
`QueuedSemaphore.WaitQueue`

Field Summary

Fields inherited from class EDU.oswego.cs.dl.util.concurrent.QueuedSemaphore
`wq_`

Fields inherited from class EDU.oswego.cs.dl.util.concurrent.Semaphore
`permits_`

Fields inherited from interface EDU.oswego.cs.dl.util.concurrent.Sync
`ONE_CENTURY, ONE_DAY, ONE_HOUR, ONE_MINUTE, ONE_SECOND, ONE_WEEK, ONE_YEAR`

Constructor Summary
`PrioritySemaphore(long initialPermits)` Create a Semaphore with the given initial number of permits.

Method Summary

Methods inherited from class EDU.oswego.cs.dl.util.concurrent.QueuedSemaphore
`acquire, attempt, getSignallee, precheck, recheck, release, release`

Methods inherited from class EDU.oswego.cs.dl.util.concurrent.Semaphore
`permits`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### 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.