モジュール jdk.incubator.concurrent
パッケージ jdk.incubator.concurrent
クラスStructuredTaskScope.ShutdownOnFailure
java.lang.Object
jdk.incubator.concurrent.StructuredTaskScope<Object>
jdk.incubator.concurrent.StructuredTaskScope.ShutdownOnFailure
- すべての実装されたインタフェース:
- AutoCloseable
- 含まれているクラス:
- StructuredTaskScope<T>
public static final class StructuredTaskScope.ShutdownOnFailure extends StructuredTaskScope<Object>
異常終了する最初のサブタスクの例外を取得する
StructuredTaskScope。 取得後、shutdownメソッドを起動して未完了のスレッドを中断し、所有者をウェイ・ク アップします。 このクラスによって実装されるポリシーは、すべてのサブタスクの結果が("すべて起動")を必要とする場合を対象としています。サブタスクが失敗した場合、他の未完了サブタスクの結果は不要になります。 
  特に指定しないかぎり、このクラスのメソッドにnull引数を渡すと、NullPointerExceptionがスローされます。
- 導入されたバージョン:
- 19
- 
ネストされたクラスのサマリークラスjdk.incubator.concurrent.StructuredTaskScopeで宣言されたネストされたクラス/インタフェースStructuredTaskScope.ShutdownOnFailure, StructuredTaskScope.ShutdownOnSuccess<T>
- 
コンストラクタのサマリーコンストラクタコンストラクタ説明仮想スレッドを作成する名前のない新しいShutdownOnFailureを構築します。ShutdownOnFailure(String name, ThreadFactory factory) 指定された名前およびスレッド・ファクトリで新しいShutdownOnFailureを構築します。
- 
メソッドのサマリー修飾子と型メソッド説明例外で完了した最初のサブタスクの例外を返します。protected voidhandleComplete(Future<Object> future) 異常な(例外または取消済)を完了したタスクのFutureを使用して初めて、指定されたタスク範囲を停止します。join()すべてのスレッドが終了するか、タスク範囲がシャットダウンするまで待ちます。指定された期限まで、すべてのスレッドが終了するか、タスク範囲がシャットダウンするまで待機します。voidサブタスクが異常終了した場合にスローします。<X extends Throwable>
 voidthrowIfFailed(Function<Throwable, ? extends X> esf) サブタスクが異常終了した場合に、指定された例外供給関数によって生成された例外をスローします。クラスjdk.incubator.concurrent.StructuredTaskScopeで宣言されたメソッドclose, fork, shutdown
- 
コンストラクタの詳細- 
ShutdownOnFailurepublic ShutdownOnFailure(String name, ThreadFactory factory) 指定された名前およびスレッド・ファクトリで新しいShutdownOnFailureを構築します。 タスク範囲には、モニタリングおよび管理の目的で任意の名前が付けられます。 スレッド・ファクトリは、タスクが「フォーク」の場合にスレッドをcreateするために使用されます。 タスク・スコープは現在のスレッドによって所有されます。- パラメータ:
- name- タスク範囲の名前。NULLにできます
- factory- スレッドのファクトリ
 
- 
ShutdownOnFailurepublic ShutdownOnFailure()仮想スレッドを作成する名前のない新しいShutdownOnFailureを構築します。このコンストラクタは、 nullという名前の2引数コンストラクタと、仮想スレッドを作成するスレッド・ファクトリの起動と同等です。
 
- 
- 
メソッドの詳細- 
handleComplete異常な(例外または取消済)を完了したタスクのFutureを使用して初めて、指定されたタスク範囲を停止します。- オーバーライド:
- クラスStructuredTaskScope<Object>のhandleComplete
- パラメータ:
- future- 完了済タスク
- 関連項目:
 
- 
joinpublic StructuredTaskScope.ShutdownOnFailure join() throws InterruptedExceptionすべてのスレッドが終了するか、タスク範囲がシャットダウンするまで待ちます。 このメソッドは、タスク・スコープで開始されたすべてのスレッドの実行が(タスクとhandleCompleteメソッドの両方)、タスク・スコープを停止するためにshutdownメソッドが呼び出されるか、現在のスレッドがinterruptedになるまで待機します。このメソッドは、タスク・スコープ所有者のみが起動できます。 - オーバーライド:
- クラスStructuredTaskScope<Object>のjoin
- 戻り値:
- このタスクの範囲
- 例外:
- IllegalStateException- このタスク範囲がクローズされている場合
- WrongThreadException- 現在のスレッドが所有者でない場合
- InterruptedException- 待機中に割込みが発生した場合
 
- 
joinUntilpublic StructuredTaskScope.ShutdownOnFailure joinUntil(Instant deadline) throws InterruptedException, TimeoutException 指定された期限まで、すべてのスレッドが終了するか、タスク範囲がシャットダウンするまで待機します。 このメソッドは、タスク・スコープで開始されたすべてのスレッドの実行が(タスクとhandleCompleteメソッドの両方)、タスク・スコープを停止するためにshutdownメソッドが呼び出されるか、現在のスレッドがinterruptedになるか、期限に達するまで待機します。このメソッドは、タスク・スコープ所有者のみが起動できます。 - オーバーライド:
- クラスStructuredTaskScope<Object>のjoinUntil
- パラメータ:
- deadline- 期限
- 戻り値:
- このタスクの範囲
- 例外:
- IllegalStateException- このタスク範囲がクローズされている場合
- WrongThreadException- 現在のスレッドが所有者でない場合
- InterruptedException- 待機中に割込みが発生した場合
- TimeoutException- 待機中に期限に達した場合
 
- 
exception例外で完了した最初のサブタスクの例外を返します。 例外ありで完了したサブタスクがなく、取り消されたサブタスクがhandleCompleteメソッドに通知された場合、CancellationExceptionが返されます。 異常終了したサブタスクがない場合、空のOptionalが返されます。
- 
throwIfFailedpublic void throwIfFailed() throws ExecutionExceptionサブタスクが異常終了した場合にスローします。 例外ありで完了したサブタスクがある場合、causeとして失敗する最初のサブタスクを除いて、ExecutionExceptionがスローされます。 例外ありで完了したサブタスクがなく、取り消されたサブタスクがhandleCompleteメソッドに通知された場合、CancellationExceptionがスローされます。 サブタスクが異常終了しなかった場合、このメソッドは何もしません。- APIのノート:
- このメソッドは、タスク・スコープ所有者がjoin(またはjoinUntil)を起動した後に起動することを目的としています。 将来のリリースでは、メソッドがほかのスレッドによって呼び出されるのを防ぐため、または結合前に強制が追加される可能性があります。
- 例外:
- ExecutionException- 例外ありでサブタスクが完了した場合
- CancellationException- 例外ありで完了したサブタスクがなく、サブタスクが取り消された場合
 
- 
throwIfFailedサブタスクが異常終了した場合に、指定された例外供給関数によって生成された例外をスローします。 例外ありで完了したサブタスクがある場合、失敗する最初のサブタスクを除いて関数が起動されます。 例外ありで完了したサブタスクがなく、取り消されたサブタスクがhandleCompleteメソッドに通知された場合、関数はCancellationExceptionを使用してコールされます。 関数によって返された例外がスローされます。 サブタスクが異常終了しなかった場合、このメソッドは何もしません。
 
-