|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject
public class AbstractQueuedSynchronizer.ConditionObject
Lock
実装の基盤として機能する AbstractQueuedSynchronizer
の Condition 実装です。
このクラスのメソッドのドキュメントには、Lock および Condition ユーザーから見た動作仕様ではなく、内部機構が記載されています。通常、このクラスのエクスポートされたバージョンには、関連する AbstractQueuedSynchronizer の状態セマンティクスを記述したドキュメントを添付する必要があります。
このクラスは Serializable ですが、すべてのフィールドは一時フィールドであるため、直列化復元された状態では待機者は存在しません。
コンストラクタの概要 | |
---|---|
AbstractQueuedSynchronizer.ConditionObject()
新しい ConditionObject のインスタンスを生成します。 |
メソッドの概要 | |
---|---|
void |
await()
割り込み可能な状態待機を実装します。 |
boolean |
await(long time,
TimeUnit unit)
時間の指定された状態待機を実装します。 |
long |
awaitNanos(long nanosTimeout)
時間の指定された状態待機を実装します。 |
void |
awaitUninterruptibly()
割り込み不可能な状態待機を実装します。 |
boolean |
awaitUntil(Date deadline)
絶対時間の指定された状態待機を実装します。 |
protected Collection<Thread> |
getWaitingThreads()
この Condition で待機している可能性のあるスレッドを含むコレクションを返します。 |
protected int |
getWaitQueueLength()
この状態で待機中のスレッドの推定数を返します。 |
protected boolean |
hasWaiters()
この状態で待機中のスレッドが存在するかどうかを照会します。 |
void |
signal()
もっとも長く待機しているスレッドが存在する場合、それをこの状態の待機キューから所有するロックの待機キューに移動します。 |
void |
signalAll()
すべてのスレッドを、この状態の待機キューから所有するロックの待機キューに移動します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public AbstractQueuedSynchronizer.ConditionObject()
メソッドの詳細 |
---|
public final void signal()
Condition
内の signal
IllegalMonitorStateException
- AbstractQueuedSynchronizer.isHeldExclusively()
が false
を返す場合public final void signalAll()
Condition
内の signalAll
IllegalMonitorStateException
- AbstractQueuedSynchronizer.isHeldExclusively()
が false
を返す場合public final void awaitUninterruptibly()
AbstractQueuedSynchronizer.getState()
により返されたロック状態を保存する。
AbstractQueuedSynchronizer.release(int)
を呼び出す。失敗した場合は、IllegalMonitorStateException をスローする。
AbstractQueuedSynchronizer.acquire(int)
を呼び出すことで、取得を再実行する。
Condition
内の awaitUninterruptibly
public final void await() throws InterruptedException
AbstractQueuedSynchronizer.getState()
により返されたロック状態を保存する。
AbstractQueuedSynchronizer.release(int)
を呼び出す。失敗した場合は、IllegalMonitorStateException をスローする。
AbstractQueuedSynchronizer.acquire(int)
を呼び出すことで、取得を再実行する。
Condition
内の await
InterruptedException
- 現在のスレッドで割り込みが発生する (およびスレッド中断の割り込みがサポートされる) 場合public final long awaitNanos(long nanosTimeout) throws InterruptedException
AbstractQueuedSynchronizer.getState()
により返されたロック状態を保存する。
AbstractQueuedSynchronizer.release(int)
を呼び出す。失敗した場合は、IllegalMonitorStateException をスローする。
AbstractQueuedSynchronizer.acquire(int)
を呼び出すことで、取得を再実行する。
Condition
内の awaitNanos
nanosTimeout
- ナノ秒単位の待機時間
nanosTimeout
値から引いた推定数。正の値は、希望する時間だけ待機できるように、このメソッドの以後の呼び出しに対する引数として使用される。ゼロ以下の値は、時間が残っていないことを示す
InterruptedException
- 現在のスレッドで割り込みが発生する (およびスレッド中断の割り込みがサポートされる) 場合public final boolean awaitUntil(Date deadline) throws InterruptedException
AbstractQueuedSynchronizer.getState()
により返されたロック状態を保存する。
AbstractQueuedSynchronizer.release(int)
を呼び出す。失敗した場合は、IllegalMonitorStateException をスローする。
AbstractQueuedSynchronizer.acquire(int)
を呼び出すことで、取得を再実行する。
Condition
内の awaitUntil
deadline
- 待機する絶対時間
false
、そうでない場合は true
InterruptedException
- 現在のスレッドで割り込みが発生する (およびスレッド中断の割り込みがサポートされる) 場合public final boolean await(long time, TimeUnit unit) throws InterruptedException
AbstractQueuedSynchronizer.getState()
により返されたロック状態を保存する。
AbstractQueuedSynchronizer.release(int)
を呼び出す。失敗した場合は、IllegalMonitorStateException をスローする。
AbstractQueuedSynchronizer.acquire(int)
を呼び出すことで、取得を再実行する。
Condition
内の await
time
- 待機する最長時間unit
- time
引数の時間単位
false
、そうでない場合は true
InterruptedException
- 現在のスレッドで割り込みが発生する (およびスレッド中断の割り込みがサポートされる) 場合protected final boolean hasWaiters()
AbstractQueuedSynchronizer.hasWaiters(java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject)
を実装します。
true
IllegalMonitorStateException
- AbstractQueuedSynchronizer.isHeldExclusively()
が false
を返す場合protected final int getWaitQueueLength()
AbstractQueuedSynchronizer.getWaitQueueLength(java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject)
を実装します。
IllegalMonitorStateException
- AbstractQueuedSynchronizer.isHeldExclusively()
が false
を返す場合protected final Collection<Thread> getWaitingThreads()
AbstractQueuedSynchronizer.getWaitingThreads(java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject)
を実装します。
IllegalMonitorStateException
- AbstractQueuedSynchronizer.isHeldExclusively()
が false
を返す場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。