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 );
}