パッケージ java.util.concurrent.locks
Lock
インタフェースがサポートするロック制御は、セマンティックス(再入可能、公平など)により異なります。また、「hand-over-hand」や「lock reordering」アルゴリズムを含む非ブロック構造のコンテキストで使用できます。 主な実装は、ReentrantLock
です。
同様に、ReadWriteLock
インタフェースは、リーダー間では共有可能であるが、ライターには排他的に設定可能なロックを定義します。 提供されるのは、単一の実装ReentrantReadWriteLock
だけです。これは、この実装だけで標準的な使用コンテキストの大半に対応できるためです。 ただし、プログラマは、独自の実装を作成して非標準の要件に対応できます。
Condition
インタフェースは、Lockに関連付けることのできる状態変数を記述します。 これらは、使用法の点で、Object.wait
を使用してアクセスされる暗黙の監視に似ていますが、拡張された機能を提供します。 特に、複数のCondition
オブジェクトを1つのLock
に関連付けることができます。 互換性の問題を回避するために、Condition
メソッドの名前は対応するObject
バージョンとは異なるものになっています。
AbstractQueuedSynchronizer
クラスは、ブロックされたスレッドのキューイングに依存するロックやその他のシンクロナイザを定義するために役立つスーパークラスとして機能します。 AbstractQueuedLongSynchronizer
クラスは同じ機能を提供しますが、64ビットの同期状態までサポートを拡張しています。 どちらもAbstractOwnableSynchronizer
クラスを拡張します。このクラスは、排他的な同期を現在保持しているスレッドを記録できる単純なクラスです。 LockSupport
クラスは、カスタマイズされた独自のロック・クラスを実装している開発者に役立つ、より低レベルのブロックおよびブロック解除のサポートを提供します。
- 導入されたバージョン:
- 1.5
-
クラス説明スレッドが排他的に所有できるシンクロナイザです。同期状態がlong
として保持される
AbstractQueuedSynchronizerのバージョンです。
ブロック・ロック、および先入れ先出し(FIFO)待機キューに依存する関連シンクロナイザ(セマフォ、イベントなど)を実装するフレームワークを提供します。ロックおよびほかの同期クラスを作成するための、基本的なスレッド・ブロック・プリミティブです。synchronized
メソッドおよび文を使用してアクセスする暗黙の監視ロックと同じ基本動作およびセマンティックスを使用し、かつ拡張機能を持つ、再入可能な相互排他Lock
です。ReentrantLock
と同様のセマンティックスをサポートするReadWriteLock
の実装です。ReentrantReadWriteLock.readLock()
メソッドによって返されたロックです。ReentrantReadWriteLock.writeLock()
メソッドによって返されたロックです。読取り/書込みアクセスを制御する3つのモードを持つ機能ベースのロックです。