Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.ematgine.utils.concurrent
Class PrioritySemaphore  view PrioritySemaphore download PrioritySemaphore.java

java.lang.Object
  extended byorg.ematgine.utils.concurrent.Semaphore
      extended byorg.ematgine.utils.concurrent.QueuedSemaphore
          extended byorg.ematgine.utils.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 inherited from class org.ematgine.utils.concurrent.QueuedSemaphore
QueuedSemaphore.WaitQueue
 
Field Summary
 
Fields inherited from class org.ematgine.utils.concurrent.QueuedSemaphore
wq_
 
Fields inherited from class org.ematgine.utils.concurrent.Semaphore
permits_
 
Fields inherited from interface org.ematgine.utils.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.
 
Methods inherited from class org.ematgine.utils.concurrent.QueuedSemaphore
acquire, attempt, getSignallee, precheck, recheck, release, release
 
Methods inherited from class org.ematgine.utils.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.