|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock
public static class ReentrantReadWriteLock.ReadLock
ReentrantReadWriteLock.readLock()
メソッドにより返されるロックです。
コンストラクタの概要 | |
---|---|
protected |
ReentrantReadWriteLock.ReadLock(ReentrantReadWriteLock lock)
サブクラスにより使用されるコンストラクタです。 |
メソッドの概要 | |
---|---|
void |
lock()
読み込みロックを取得します。 |
void |
lockInterruptibly()
現在のスレッドが interrupted でない場合、読み込みロックを取得します。 |
Condition |
newCondition()
ReadLocks が状態をサポートしないため、UnsupportedOperationException をスローします。 |
String |
toString()
このロックおよびその状態を識別する文字列を返します。 |
boolean |
tryLock()
呼び出し時に別のスレッドにより書き込みロックが保持されていない場合にのみ、読み込みロックを取得します。 |
boolean |
tryLock(long timeout,
TimeUnit unit)
指定された待機時間内に別のスレッドが書き込みロックを保持せず、現在のスレッドで割り込みが発生していない場合に、読み込みロックを取得します。 |
void |
unlock()
このロックの解放を試みます。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
protected ReentrantReadWriteLock.ReadLock(ReentrantReadWriteLock lock)
lock
- 外部のロックオブジェクト
NullPointerException
- lock が null の場合メソッドの詳細 |
---|
public void lock()
書き込みロックが別のスレッドにより保持されていない場合は、読み込みロックを取得してただちに復帰します。
書き込みロックが別のスレッドにより保持されている場合、現在のスレッドはスレッドのスケジューリングに関して無効になり、読み込みロックが取得されるまで待機します。
Lock
内の lock
public void lockInterruptibly() throws InterruptedException
書き込みロックが別のスレッドにより保持されていない場合は、読み込みロックを取得してただちに復帰します。
書き込みロックが別のスレッドにより保持されている場合、現在のスレッドはスレッドのスケジューリングに関して無効になり、次の 2 つのいずれかが起きるまで待機します。
現在のスレッドで、
InterruptedException
がスローされ、現在のスレッドの割り込みステータスがクリアされます。
このメソッドは明示的な割り込みポイントであるため、この実装では、通常または再入可能なロック取得への割り込みへの応答に高い優先度が与えられます。
Lock
内の lockInterruptibly
InterruptedException
- 現在のスレッドで割り込みが発生した場合public boolean tryLock()
別のスレッドが書き込みロックを保持していない場合に読み込みロックを取得し、値 true
でただちに復帰します。このロックが公平順序付けポリシーを使用するように設定されている場合でも、読み込みロックが使用可能であれば、ほかのスレッドが現在読み込みロックを待機しているかどうかに関係なく、tryLock()
の呼び出しですぐに読み込みロックが取得されます。この「割り込み」(barging) 動作により公平性が失われるとは言え、これは特定の状況下で有用です。このロックの公平性設定を尊重する場合は、ほぼ等価な tryLock(0, TimeUnit.SECONDS)
を使用します (これも割り込みを検出する)。
書き込みロックが別のスレッドにより保持されている場合、このメソッドは、値 false
でただちに復帰します。
Lock
内の tryLock
true
public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException
別のスレッドが書き込みロックを保持していない場合に読み込みロックを取得し、値 true
でただちに復帰します。このロックが公平順序付けポリシーを使用するように設定されていても、ほかのスレッドがロックを待機している場合は、使用可能なロックは取得されません。これは、tryLock()
メソッドとは対照的です。公平ロックに対するバージを許可しない、時間設定された tryLock
を使用する場合は、時間設定と非時間設定の両形式を組み合わせて使用します。
if (lock.tryLock() || lock.tryLock(timeout, unit) ) { ... }
書き込みロックが別のスレッドにより保持されている場合、現在のスレッドはスレッドのスケジューリングに関して無効になり、次の 3 つのいずれかが起きるまで待機します。
読み込みロックが取得されると、true
が返されます。
現在のスレッドで、
InterruptedException
がスローされ、現在のスレッドの割り込みステータスがクリアされます。
指定された待機時間が経過すると、値 false
が返されます。時間がゼロまたはそれより小さい場合、メソッドは待機しません。
このメソッドは明示的な割り込みポイントであるため、この実装では、通常または再入可能なロック取得、および待機時間経過レポートへの割り込みに対する応答に高い優先度が与えられます。
Lock
内の tryLock
timeout
- 読み込みロックを待機する時間unit
- timeout 引数の時間単位
true
InterruptedException
- 現在のスレッドで割り込みが発生した場合
NullPointerException
- 時間単位が null の場合public void unlock()
リーダーの数がゼロになった場合、書き込みロック試行からロックが利用可能になります。
Lock
内の unlock
public Condition newCondition()
ReadLocks
が状態をサポートしないため、UnsupportedOperationException
をスローします。
Lock
内の newCondition
Lock
インスタンス用の新規 Condition
UnsupportedOperationException
- alwayspublic String toString()
"Read locks ="
が含まれます。
Object
内の toString
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。