java.lang.Object
java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject
- すべての実装されたインタフェース:
- Serializable,- Condition
- 含まれているクラス:
- AbstractQueuedSynchronizer
public class AbstractQueuedSynchronizer.ConditionObject extends Object implements Condition, Serializable
Lock実装の基盤として機能するAbstractQueuedSynchronizerのCondition実装です。
 このクラスのメソッドのドキュメントには、LockおよびConditionユーザーから見た動作仕様ではなく、内部機構が記載されています。 通常、このクラスのエクスポートされたバージョンには、関連付けられたAbstractQueuedSynchronizerの状態セマンティックスを記述したドキュメントを添付する必要があります。 
 
このクラスはSerializableですが、すべてのフィールドは一時フィールドであるため、直列化復元された状態では待機者は存在しません。
- 関連項目:
- 直列化された形式
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 ConditionObject()新しいConditionObjectのインスタンスを生成します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidawait()割込み可能な状態待機を実装します。booleanawait(long time, TimeUnit unit)時間の指定された状態待機を実装します。longawaitNanos(long nanosTimeout)時間の指定された状態待機を実装します。voidawaitUninterruptibly()割込み不可能な状態待機を実装します。booleanawaitUntil(Date deadline)絶対時間の指定された状態待機を実装します。protected Collection<Thread>getWaitingThreads()このConditionで待機している可能性のあるスレッドを含むコレクションを返します。protected intgetWaitQueueLength()この状態で待機中のスレッドの推定数を返します。protected booleanhasWaiters()この状態で待機中のスレッドが存在するかどうかを照会します。voidsignal()もっとも長く待機しているスレッドが存在する場合、それをこの状態の待機キューから所有するロックの待機キューに移動します。voidsignalAll()すべてのスレッドを、この状態の待機キューから所有するロックの待機キューに移動します。
- 
コンストラクタの詳細- 
ConditionObjectpublic ConditionObject()新しいConditionObjectのインスタンスを生成します。
 
- 
- 
メソッドの詳細- 
signalpublic final void signal()もっとも長く待機しているスレッドが存在する場合、それをこの状態の待機キューから所有するロックの待機キューに移動します。- 定義:
- signal、インタフェース:- Condition
- 例外:
- IllegalMonitorStateException-- AbstractQueuedSynchronizer.isHeldExclusively()が- falseを返す場合
 
- 
signalAllpublic final void signalAll()すべてのスレッドを、この状態の待機キューから所有するロックの待機キューに移動します。- 定義:
- signalAll、インタフェース:- Condition
- 例外:
- IllegalMonitorStateException-- AbstractQueuedSynchronizer.isHeldExclusively()が- falseを返す場合
 
- 
awaitUninterruptiblypublic final void awaitUninterruptibly()割込み不可能な状態待機を実装します。- AbstractQueuedSynchronizer.getState()により返されたロック状態を保存する。
- 保存済みの状態を引数としてAbstractQueuedSynchronizer.release(int)を呼び出す。失敗した場合は、IllegalMonitorStateExceptionをスローする。
- 信号が送られるまでブロックする。
- 引数として保存された状態で特殊化されたバージョンのAbstractQueuedSynchronizer.acquire(java.util.concurrent.locks.AbstractQueuedSynchronizer.Node, int, boolean, boolean, boolean, long)を起動することにより、再取得します。
 - 定義:
- awaitUninterruptibly、インタフェース:- Condition
 
- 
awaitpublic final void await() throws InterruptedException割込み可能な状態待機を実装します。- 現在のスレッドで割込みが行われた場合は、InterruptedExceptionをスローする。
- AbstractQueuedSynchronizer.getState()により返されたロック状態を保存する。
- 保存済みの状態を引数としてAbstractQueuedSynchronizer.release(int)を呼び出す。失敗した場合は、IllegalMonitorStateExceptionをスローする。
- 信号が送信されるか、割込みが発生するまでブロックする。
- 引数として保存された状態で特殊化されたバージョンのAbstractQueuedSynchronizer.acquire(java.util.concurrent.locks.AbstractQueuedSynchronizer.Node, int, boolean, boolean, boolean, long)を起動することにより、再取得します。
- ステップ4のブロック中に割込みが発生した場合は、InterruptedExceptionをスローする。
 - 定義:
- await、インタフェース:- Condition
- 例外:
- InterruptedException- 現在のスレッドで割込みが発生する(およびスレッド中断の割込みがサポートされる)場合
 
- 
awaitNanospublic final long awaitNanos(long nanosTimeout) throws InterruptedException時間の指定された状態待機を実装します。- 現在のスレッドで割込みが行われた場合は、InterruptedExceptionをスローする。
- AbstractQueuedSynchronizer.getState()により返されたロック状態を保存する。
- 保存済みの状態を引数としてAbstractQueuedSynchronizer.release(int)を呼び出す。失敗した場合は、IllegalMonitorStateExceptionをスローする。
- 信号が送信されるか、割込みが発生するか、タイム・アウトするまでブロックする。
- 引数として保存された状態で特殊化されたバージョンのAbstractQueuedSynchronizer.acquire(java.util.concurrent.locks.AbstractQueuedSynchronizer.Node, int, boolean, boolean, boolean, long)を起動することにより、再取得します。
- ステップ4のブロック中に割込みが発生した場合は、InterruptedExceptionをスローする。
 - 定義:
- awaitNanos、インタフェース:- Condition
- パラメータ:
- nanosTimeout- ナノ秒単位の待機時間
- 戻り値:
- このメソッドから戻るまで待機する時間をnanosTimeout値から引いた推定数。 正の値は、希望する時間だけ待機できるように、このメソッドの以後の呼出しに対する引数として使用される。 ゼロ以下の値は、時間が残っていないことを示す。
- 例外:
- InterruptedException- 現在のスレッドで割込みが発生する(およびスレッド中断の割込みがサポートされる)場合
 
- 
awaitUntilpublic final boolean awaitUntil(Date deadline) throws InterruptedException絶対時間の指定された状態待機を実装します。- 現在のスレッドで割込みが行われた場合は、InterruptedExceptionをスローする。
- AbstractQueuedSynchronizer.getState()により返されたロック状態を保存する。
- 保存済みの状態を引数としてAbstractQueuedSynchronizer.release(int)を呼び出す。失敗した場合は、IllegalMonitorStateExceptionをスローする。
- 信号が送信されるか、割込みが発生するか、タイム・アウトするまでブロックする。
- 引数として保存された状態で特殊化されたバージョンのAbstractQueuedSynchronizer.acquire(java.util.concurrent.locks.AbstractQueuedSynchronizer.Node, int, boolean, boolean, boolean, long)を起動することにより、再取得します。
- ステップ4のブロック中に割込みが発生した場合は、InterruptedExceptionをスローする。
- ステップ4のブロック中にタイム・アウトした場合はfalseを返し、そうでない場合はtrueを返す。
 - 定義:
- awaitUntil、インタフェース:- Condition
- パラメータ:
- deadline- 待機する絶対時間
- 戻り値:
- false- 復帰時に期限が経過している場合。そうでない場合は- true
- 例外:
- InterruptedException- 現在のスレッドで割込みが発生する(およびスレッド中断の割込みがサポートされる)場合
 
- 
awaitpublic final boolean await(long time, TimeUnit unit) throws InterruptedException時間の指定された状態待機を実装します。- 現在のスレッドで割込みが行われた場合は、InterruptedExceptionをスローする。
- AbstractQueuedSynchronizer.getState()により返されたロック状態を保存する。
- 保存済みの状態を引数としてAbstractQueuedSynchronizer.release(int)を呼び出す。失敗した場合は、IllegalMonitorStateExceptionをスローする。
- 信号が送信されるか、割込みが発生するか、タイム・アウトするまでブロックする。
- 引数として保存された状態で特殊化されたバージョンのAbstractQueuedSynchronizer.acquire(java.util.concurrent.locks.AbstractQueuedSynchronizer.Node, int, boolean, boolean, boolean, long)を起動することにより、再取得します。
- ステップ4のブロック中に割込みが発生した場合は、InterruptedExceptionをスローする。
- ステップ4のブロック中にタイム・アウトした場合はfalseを返し、そうでない場合はtrueを返す。
 - 定義:
- await、インタフェース:- Condition
- パラメータ:
- time- 待機する最長時間
- unit-- time引数の時間単位
- 戻り値:
- false- メソッドからの復帰前に待機時間が経過したことが検出された場合。そうでない場合は- true
- 例外:
- InterruptedException- 現在のスレッドで割込みが発生する(およびスレッド中断の割込みがサポートされる)場合
 
- 
hasWaitersprotected final boolean hasWaiters()この状態で待機中のスレッドが存在するかどうかを照会します。AbstractQueuedSynchronizer.hasWaiters(ConditionObject)を実装します。- 戻り値:
- 待機中のスレッドが存在する場合はtrue
- 例外:
- IllegalMonitorStateException-- AbstractQueuedSynchronizer.isHeldExclusively()が- falseを返す場合
 
- 
getWaitQueueLengthprotected final int getWaitQueueLength()この状態で待機中のスレッドの推定数を返します。AbstractQueuedSynchronizer.getWaitQueueLength(ConditionObject)を実装します。- 戻り値:
- 待機中のスレッドの推定数
- 例外:
- IllegalMonitorStateException-- AbstractQueuedSynchronizer.isHeldExclusively()が- falseを返す場合
 
- 
getWaitingThreadsprotected final Collection<Thread> getWaitingThreads()このConditionで待機している可能性のあるスレッドを含むコレクションを返します。AbstractQueuedSynchronizer.getWaitingThreads(ConditionObject)を実装します。- 戻り値:
- スレッドのコレクション
- 例外:
- IllegalMonitorStateException-- AbstractQueuedSynchronizer.isHeldExclusively()が- falseを返す場合
 
 
-