Team LiB
Previous Section Next Section

AbstractQueuedSynchronizerjava.util.concurrent.locks

Java 5.0serializable

This abstract class is a low-level utility. A concrete subclass can be used as a helper class for implementing the Lock interface or for implementing synchronizer utilities like the CountDownLatch class of java.util.concurrent. Subclasses must define tryAcquire( ), TRyRelease( ), tryAcquireShared( ), tryReleaseShared( ), and isHeldExclusively.

Figure 16-104. java.util.concurrent.locks.AbstractQueuedSynchronizer


public abstract class AbstractQueuedSynchronizer implements Serializable {
// Protected Constructors
     protected AbstractQueuedSynchronizer( );  
// Nested Types
     public class ConditionObject implements Condition, Serializable; 
// Public Instance Methods
     public final void acquire(int arg);  
     public final void acquireInterruptibly(int arg) throws InterruptedException;  
     public final void acquireShared(int arg);  
     public final void acquireSharedInterruptibly(int arg) throws InterruptedException;  
     public final java.util.Collection<Thread> getExclusiveQueuedThreads( );  
     public final Thread getFirstQueuedThread( );  
     public final java.util.Collection<Thread> getQueuedThreads( );  
     public final int getQueueLength( );  
     public final java.util.Collection<Thread> getSharedQueuedThreads( );  
     public final java.util.Collection<Thread> getWaitingThreads(AbstractQueuedSynchronizer.
        ConditionObject condition);  
     public final int getWaitQueueLength(AbstractQueuedSynchronizer.ConditionObject condition);  
     public final boolean hasContended( );  
     public final boolean hasQueuedThreads( );  
     public final boolean hasWaiters(AbstractQueuedSynchronizer.ConditionObject condition);  
     public final boolean isQueued(Thread thread);  
     public final boolean owns(AbstractQueuedSynchronizer.ConditionObject condition);  
     public final boolean release(int arg);  
     public final boolean releaseShared(int arg);  
     public final boolean tryAcquireNanos(int arg, long nanosTimeout) 
        throws InterruptedException;  
     public final boolean tryAcquireSharedNanos(int arg, long nanosTimeout) 
        throws InterruptedException;  
// Public Methods Overriding Object
     public String toString( );  
// Protected Instance Methods
     protected final boolean compareAndSetState(int expect, int update);  
     protected final int getState( );  
     protected boolean isHeldExclusively( );  
     protected final void setState(int newState);  
     protected boolean tryAcquire(int arg);  
     protected int tryAcquireShared(int arg);  
     protected boolean tryRelease(int arg);  
     protected boolean tryReleaseShared(int arg);  
}

    Team LiB
    Previous Section Next Section