Java ロックの状態
Javaでロックの状態は以下のように表されます。
- アンロック(ロック解除中):ロックは使用可能で、どのスレッドでも保持していません。
- ロック状態(Locked):ロックが一部のスレッドで保有されている。
- 再入ロック状態(Reentrant):ロックがすでに特定の thread に保持されており、ロックを保持している thread が同じロックを再度取得することを許可する。
- 待ち状態(Waiting):スレッドがロックの解放を待って、待ちキューに入る。
- タイムアウトウェイト: スレッドはロックの解放を待機しているがタイムアウト時間の設定有り
- スレッドはブロック状態となり、ロックを取得する権限を待機中
これらの状態は、Java のロックインターフェイス(ReentrantLock や Object クラスの wait() メソッドなど)と状態列挙型(Thread.State など)によって表されます。異なるロックの実装には、いくつかの追加の状態がある可能性があります。