モジュール java.base
パッケージ java.util.concurrent

クラス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です。
プレビュー機能が有効な場合のみ、プログラムでShutdownOnFailureを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
「fail」PREVIEWする最初のサブタスクの例外を取得するStructuredTaskScope 取得されると、未完了のスレッドを中断し、タスク・スコープの所有者をウェイクアップするために、タスク・スコープを「停止」PREVIEWします。 このクラスによって実装されるポリシーは、すべてのサブタスクの結果が("すべて起動")を必要とする場合を対象としています。サブタスクが失敗した場合、他の未完了サブタスクの結果は不要になります。

特に指定しないかぎり、このクラスのメソッドにnull引数を渡すと、NullPointerExceptionがスローされます。

APIのノート:
このクラスは、サブタスクが失敗した場合にタスク・スコープを停止するポリシーを実装します。 shutdownPREVIEWメソッドを使用してタスク・スコープを直接停止する必要はありません。
導入されたバージョン:
21
  • コンストラクタの詳細

    • ShutdownOnFailure

      public ShutdownOnFailure(String name, ThreadFactory factory)
      指定された名前およびスレッド・ファクトリで新しいShutdownOnFailureを構築します。 タスク範囲には、モニタリングおよび管理の目的で任意の名前が付けられます。 スレッド・ファクトリは、サブタスクが「フォーク」PREVIEWの場合に、スレッドをcreateするために使用します。 タスク・スコープは現在のスレッドによって所有されます。

      Constructionは、現在のスレッドの「スコープ値」PREVIEWバインディングを取得して、タスク・スコープで開始されたスレッドによる継承を取得します。 クラス説明の「ツリー構造」セクションには、スコープ値バインディングの継承を目的として、親子関係が暗黙的に確立される方法の詳細が示されています。

      パラメータ:
      name - タスク範囲の名前。NULLにできます
      factory - スレッドのファクトリ
    • ShutdownOnFailure

      public ShutdownOnFailure()
      仮想スレッドを作成する名前のない新しいShutdownOnFailureを構築します。
      実装要件:
      このコンストラクタは、nullという名前の2引数コンストラクタと、仮想スレッドを作成するスレッド・ファクトリの起動と同等です。
  • メソッドの詳細

    • join

      このタスク・スコープで開始されたすべてのサブタスクが完了するか、またはサブタスクが「fail」PREVIEWするまで待機します。

      このメソッドは、このタスク・スコープのすべてのスレッドstartedPREVIEWが実行の完了を待機して、すべてのサブタスクを待機します。 すべてのスレッドが終了するか、サブタスクが失敗するか、現在のスレッドがinterruptedになると、待機が停止します。 また、このタスク・スコープを停止するためにshutdownPREVIEWメソッドを直接起動すると、待機も停止します。

      このメソッドは、タスク・スコープ所有者のみが起動できます。

      オーバーライド:
      クラスStructuredTaskScopePREVIEW<Object>join
      戻り値:
      このタスクの範囲
      例外:
      IllegalStateException - このタスク範囲がクローズされている場合
      WrongThreadException - 現在のスレッドがタスク・スコープ所有者でない場合
      InterruptedException - 待機中に割込みが発生した場合
    • joinUntil

      このタスク・スコープで開始されたすべてのサブタスクが完了するか、指定した期限まで、「fail」PREVIEWするサブタスクが完了するまで待機します。

      このメソッドは、このタスク・スコープのすべてのスレッドstartedPREVIEWが実行の完了を待機して、すべてのサブタスクを待機します。 すべてのスレッドが終了するか、サブタスクが失敗するか、期限に達するか、現在のスレッドがinterruptedになると、待機が停止します。 また、このタスク・スコープを停止するためにshutdownPREVIEWメソッドを直接起動すると、待機も停止します。

      このメソッドは、タスク・スコープ所有者のみが起動できます。

      オーバーライド:
      クラスStructuredTaskScopePREVIEW<Object>joinUntil
      パラメータ:
      deadline - 期限
      戻り値:
      このタスクの範囲
      例外:
      IllegalStateException - このタスク範囲がクローズされている場合
      WrongThreadException - 現在のスレッドがタスク・スコープ所有者でない場合
      InterruptedException - 待機中に割込みが発生した場合
      TimeoutException - 待機中に期限に達した場合
    • exception

      public Optional<Throwable> exception()
      failedPREVIEWの最初のサブタスクの例外を返します。 サブタスクが失敗しなかった場合は、空のOptionalが返されます。
      戻り値:
      最初のサブタスクが失敗する例外、またはサブタスクが失敗しなかった場合は空のオプション
      例外:
      WrongThreadException - 現在のスレッドがタスク・スコープ所有者でない場合
      IllegalStateException - フォーク後にタスク・スコープの所有者が参加しなかった場合
    • throwIfFailed

      public void throwIfFailed() throws ExecutionException
      サブタスクfailedPREVIEWの場合にスローされます。 サブタスクが例外で失敗した場合、ExecutionExceptionは、最初のサブタスクを除いてcauseとして失敗します。 このメソッドは、サブタスクが失敗しなかった場合は何もしません。
      例外:
      ExecutionException - サブタスクが失敗した場合
      WrongThreadException - 現在のスレッドがタスク・スコープ所有者でない場合
      IllegalStateException - フォーク後にタスク・スコープの所有者が参加しなかった場合
    • throwIfFailed

      public <X extends Throwable> void throwIfFailed(Function<Throwable,? extends X> esf) throws X
      サブタスクfailedPREVIEWの場合、指定された例外指定関数によって生成された例外をスローします。 いずれかのサブタスクが例外ありで失敗した場合は、失敗する最初のサブタスクを除き、関数が呼び出されます。 関数によって返された例外がスローされます。 このメソッドは、サブタスクが失敗しなかった場合は何もしません。
      型パラメータ:
      X - スローされる例外のタイプ
      パラメータ:
      esf - 例外供給機能
      例外:
      X - 例外供給機能によって生成されます
      WrongThreadException - 現在のスレッドがタスク・スコープ所有者でない場合
      IllegalStateException - フォーク後にタスク・スコープの所有者が参加しなかった場合