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になると、待機が停止します。 また、このタスク・スコープを停止するために
shutdown
PREVIEWメソッドを直接起動すると、待機も停止します。このメソッドは、タスク・スコープ所有者のみが起動できます。
- オーバーライド:
- クラス
StructuredTaskScopePREVIEW<Object>
のjoin
- 戻り値:
- このタスクの範囲
- 例外:
IllegalStateException
- このタスク範囲がクローズされている場合WrongThreadException
- 現在のスレッドがタスク・スコープ所有者でない場合InterruptedException
- 待機中に割込みが発生した場合
-
joinUntil
public StructuredTaskScope.ShutdownOnFailurePREVIEW joinUntil(Instant deadline) throws InterruptedException, TimeoutException このタスク・スコープで開始されたすべてのサブタスクが完了するか、指定した期限まで、「fail」PREVIEWするサブタスクが完了するまで待機します。このメソッドは、このタスク・スコープのすべてのスレッドstartedPREVIEWが実行の完了を待機して、すべてのサブタスクを待機します。 すべてのスレッドが終了するか、サブタスクが失敗するか、期限に達するか、現在のスレッドがinterruptedになると、待機が停止します。 また、このタスク・スコープを停止するために
shutdown
PREVIEWメソッドを直接起動すると、待機も停止します。このメソッドは、タスク・スコープ所有者のみが起動できます。
- オーバーライド:
- クラス
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
を使用できます。