java.lang.Object
java.util.concurrent.StructuredTaskScopePREVIEW<Object>
java.util.concurrent.StructuredTaskScope.ShutdownOnFailure
- すべての実装されたインタフェース:
AutoCloseable
- 含まれているクラス:
StructuredTaskScopePREVIEW<T>
public static final class StructuredTaskScope.ShutdownOnFailure extends StructuredTaskScopePREVIEW<Object>
ShutdownOnFailureは、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
「fail」PREVIEWする最初のサブタスクの例外を取得する
StructuredTaskScope。 取得されると、未完了のスレッドを中断し、タスク・スコープの所有者をウェイクアップするために、タスク・スコープを「停止」PREVIEWします。 このクラスによって実装されるポリシーは、すべてのサブタスクの結果が("すべて起動")を必要とする場合を対象としています。サブタスクが失敗した場合、他の未完了サブタスクの結果は不要になります。
特に指定しないかぎり、このクラスのメソッドにnull引数を渡すと、NullPointerExceptionがスローされます。
-
ネストされたクラスのサマリー
クラスjava.util.concurrent.StructuredTaskScopePREVIEWで宣言されたネストされたクラス/インタフェース
StructuredTaskScope.ShutdownOnFailurePREVIEW, StructuredTaskScope.ShutdownOnSuccessPREVIEW<T>, StructuredTaskScope.SubtaskPREVIEW<T> -
コンストラクタのサマリー
コンストラクタコンストラクタ説明仮想スレッドを作成する名前のない新しいShutdownOnFailureを構築します。ShutdownOnFailure(String name, ThreadFactory factory) 指定された名前およびスレッド・ファクトリで新しいShutdownOnFailureを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明join()void<X extends Throwable>
voidthrowIfFailed(Function<Throwable, ? extends X> esf) クラスjava.util.concurrent.StructuredTaskScopePREVIEWで宣言されたメソッド
close, ensureOwnerAndJoined, fork, handleComplete, isShutdown, shutdown
-
コンストラクタの詳細
-
ShutdownOnFailure
public ShutdownOnFailure(String name, ThreadFactory factory) 指定された名前およびスレッド・ファクトリで新しいShutdownOnFailureを構築します。 タスク範囲には、モニタリングおよび管理の目的で任意の名前が付けられます。 スレッド・ファクトリは、サブタスクが「フォーク」PREVIEWの場合に、スレッドをcreateするために使用します。 タスク・スコープは現在のスレッドによって所有されます。Constructionは、現在のスレッドの「スコープ値」PREVIEWバインディングを取得して、タスク・スコープで開始されたスレッドによる継承を取得します。 クラス説明の「ツリー構造」セクションには、スコープ値バインディングの継承を目的として、親子関係が暗黙的に確立される方法の詳細が示されています。
- パラメータ:
name- タスク範囲の名前。NULLにできますfactory- スレッドのファクトリ
-
ShutdownOnFailure
public ShutdownOnFailure()仮想スレッドを作成する名前のない新しいShutdownOnFailureを構築します。- 実装要件:
- このコンストラクタは、
nullという名前の2引数コンストラクタと、仮想スレッドを作成するスレッド・ファクトリの起動と同等です。
-
-
メソッドの詳細
-
join
public StructuredTaskScope.ShutdownOnFailurePREVIEW join() throws InterruptedExceptionこのタスク・スコープで開始されたすべてのサブタスクが完了するか、またはサブタスクが「fail」PREVIEWするまで待機します。このメソッドは、このタスク・スコープのすべてのスレッドstartedPREVIEWが実行の完了を待機して、すべてのサブタスクを待機します。 すべてのスレッドが終了するか、サブタスクが失敗するか、現在のスレッドがinterruptedになると、待機が停止します。 また、このタスク・スコープを停止するために
shutdownPREVIEWメソッドを直接起動すると、待機も停止します。このメソッドは、タスク・スコープ所有者のみが起動できます。
- オーバーライド:
- クラス
StructuredTaskScopePREVIEW<Object>のjoin - 戻り値:
- このタスクの範囲
- 例外:
IllegalStateException- このタスク範囲がクローズされている場合WrongThreadException- 現在のスレッドがタスク・スコープ所有者でない場合InterruptedException- 待機中に割込みが発生した場合
-
joinUntil
public StructuredTaskScope.ShutdownOnFailurePREVIEW joinUntil(Instant deadline) throws InterruptedException, TimeoutException このタスク・スコープで開始されたすべてのサブタスクが完了するか、指定した期限まで、「fail」PREVIEWするサブタスクが完了するまで待機します。このメソッドは、このタスク・スコープのすべてのスレッドstartedPREVIEWが実行の完了を待機して、すべてのサブタスクを待機します。 すべてのスレッドが終了するか、サブタスクが失敗するか、期限に達するか、現在のスレッドがinterruptedになると、待機が停止します。 また、このタスク・スコープを停止するために
shutdownPREVIEWメソッドを直接起動すると、待機も停止します。このメソッドは、タスク・スコープ所有者のみが起動できます。
- オーバーライド:
- クラス
StructuredTaskScopePREVIEW<Object>のjoinUntil - パラメータ:
deadline- 期限- 戻り値:
- このタスクの範囲
- 例外:
IllegalStateException- このタスク範囲がクローズされている場合WrongThreadException- 現在のスレッドがタスク・スコープ所有者でない場合InterruptedException- 待機中に割込みが発生した場合TimeoutException- 待機中に期限に達した場合
-
exception
- 戻り値:
- 最初のサブタスクが失敗する例外、またはサブタスクが失敗しなかった場合は空のオプション
- 例外:
WrongThreadException- 現在のスレッドがタスク・スコープ所有者でない場合IllegalStateException- フォーク後にタスク・スコープの所有者が参加しなかった場合
-
throwIfFailed
public void throwIfFailed() throws ExecutionExceptionサブタスクfailedPREVIEWの場合にスローされます。 サブタスクが例外で失敗した場合、ExecutionExceptionは、最初のサブタスクを除いてcauseとして失敗します。 このメソッドは、サブタスクが失敗しなかった場合は何もしません。- 例外:
ExecutionException- サブタスクが失敗した場合WrongThreadException- 現在のスレッドがタスク・スコープ所有者でない場合IllegalStateException- フォーク後にタスク・スコープの所有者が参加しなかった場合
-
throwIfFailed
サブタスクfailedPREVIEWの場合、指定された例外指定関数によって生成された例外をスローします。 いずれかのサブタスクが例外ありで失敗した場合は、失敗する最初のサブタスクを除き、関数が呼び出されます。 関数によって返された例外がスローされます。 このメソッドは、サブタスクが失敗しなかった場合は何もしません。- 型パラメータ:
X- スローされる例外のタイプ- パラメータ:
esf- 例外供給機能- 例外:
X- 例外供給機能によって生成されますWrongThreadException- 現在のスレッドがタスク・スコープ所有者でない場合IllegalStateException- フォーク後にタスク・スコープの所有者が参加しなかった場合
-
ShutdownOnFailureを使用できます。