インターフェース Lock
public interface Lock
Lock は、synchronized メソッドおよび LockSE を使用して取得できるものよりも広範なロック操作を提供します。これにより、より柔軟な構造化と改善された使用モデルが可能になります。 このロックの抽象化は lock utilitiesSE の拡張であり、機能とリソースの試行を容易にすることを目的としています。
 ReentrantLock backend = new ReentrantLock();
 Lock lock = Lock.of(backend);
 lock.executeWithoutResult(() -> {
   // callback without returning a result
 });
 lock.execute(() -> {
   // callback returning a result
   return …;
 });
 - 導入:
- 3.2
- 作成者:
- Mark Paluch
- ネストされたクラスの要約ネストされたクラス
- メソッドのサマリー修飾子と型メソッド説明- default <T> T- execute- (SupplierSE<T> action) ロックで保護された指定されたコールバックオブジェクトで指定されたアクションを実行し、その結果を返します。- default void- executeWithoutResult- (RunnableSE action) ロックで保護された指定されたコールバックオブジェクトで指定されたアクションを実行します。- lock()ロックを取得します。現在のスレッドが中断されない限り、ロックを取得します。- static Lock指定された- delegateSE に対して新しい- Lockアダプターを作成します。
- メソッドの詳細- of指定された- delegateSE に対して新しい- Lockアダプターを作成します。- パラメーター:
- delegate- null であってはなりません。
- 戻り値:
-  新しい Lockアダプター。
 
- lockLock.AcquiredLock lock()ロックを取得します。- ロックが利用できない場合、現在のスレッドはスレッドスケジューリングの目的で無効になり、ロックが取得されるまで休止状態になります。 - 関連事項:
 
- lockInterruptibly現在のスレッドが中断されない限り、ロックを取得します。- 利用可能な場合はロックを取得し、すぐに返します。 - ロックが利用できない場合、現在のスレッドはスレッドスケジューリングの目的で無効になり、次の 2 つのいずれかが発生するまで休止状態になります。 - ロックは現在のスレッドによって取得されます。または
- 他のスレッドが現在のスレッドに割り込み、ロック取得の割り込みがサポートされています。
 - 現在のスレッドの場合: - このメソッドへの開始時に割り込みステータスが設定されます。または
- ロックの取得中に中断され、ロック取得の中断がサポートされます。
 - InterruptedExceptionSE がスローされ、現在のスレッドの割り込みステータスがクリアされます。
- executeロックで保護された指定されたコールバックオブジェクトで指定されたアクションを実行し、その結果を返します。- actionは、ロックが取得された場合にのみ実行されます。- 型パラメーター:
- T- 結果の型。
- パラメーター:
- action- 実行するアクション。
- 戻り値:
- 行動の結果。
- 例外:
- RuntimeExceptionSE- アクションによって投げられた場合
 
- executeWithoutResultロックで保護された指定されたコールバックオブジェクトで指定されたアクションを実行します。- actionは、ロックが取得された場合にのみ実行されます。- パラメーター:
- action- 実行するアクション。
- 例外:
- RuntimeExceptionSE- アクションによって投げられた場合。