クラスStructuredTaskScope.ShutdownOnFailure
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プラットフォームの永続機能にアップグレードすることができます。
「失敗」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は、タスク・スコープで開始されたスレッドによる継承のために、現在のスレッドの「スコープ値」バインディングを取得します。 クラス説明の「ツリー構造」セクションには、スコープ値バインディングの継承を目的として親子関係が暗黙的に確立される方法の詳細が示されています。
- パラメータ:
name
- タスク範囲の名前。NULLにできますfactory
- スレッドのファクトリ
-
ShutdownOnFailure
public ShutdownOnFailure()仮想スレッドを作成する名前のない新しいShutdownOnFailure
を構築します。- 実装要件:
- このコンストラクタは、
null
という名前の2引数コンストラクタと、仮想スレッドを作成するスレッド・ファクトリの起動と同等です。
-
-
メソッドの詳細
-
join
public StructuredTaskScope.ShutdownOnFailurePREVIEW join() throws InterruptedExceptionこのタスク・スコープで開始されたすべてのサブタスクが完了するか、サブタスクが「失敗」PREVIEWになるまで待機します。このメソッドは、このタスク・スコープのすべてのスレッドstartedPREVIEWが実行を完了するのを待機することで、すべてのサブタスクを待機します。 すべてのスレッドが終了するか、サブタスクが失敗するか、現在のスレッドがinterruptedになると、待機が停止します。 また、
shutdown
PREVIEWメソッドを直接呼び出してこのタスク・スコープを停止すると、待機も停止します。このメソッドは、タスク・スコープ所有者のみが起動できます。
- オーバーライド:
- クラス
StructuredTaskScopePREVIEW<Object>
のjoin
- 戻り値:
- このタスクの範囲
- スロー:
IllegalStateException
- このタスク範囲がクローズされている場合WrongThreadException
- 現在のスレッドがタスク・スコープ所有者でない場合InterruptedException
- 待機中に割込みが発生した場合
-
joinUntil
public StructuredTaskScope.ShutdownOnFailurePREVIEW joinUntil(Instant deadline) throws InterruptedException, TimeoutException このタスク・スコープで開始されたすべてのサブタスクが完了するか、指定された期限まで「失敗」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
を使用できます。