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