モジュール java.base
パッケージ java.lang

インタフェースThread.Builder

既知のすべてのサブインタフェース:
Thread.Builder.OfPlatformPREVIEW, Thread.Builder.OfVirtualPREVIEW
含まれているクラス:
Thread

public static sealed interface Thread.Builder permits Thread.Builder.OfPlatformPREVIEW, Thread.Builder.OfVirtualPREVIEW (not exhaustive)
Builderは、JavaプラットフォームのプレビューAPIです。
プレビュー機能が有効な場合のみ、プログラムでBuilderを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
ThreadおよびThreadFactoryオブジェクトのビルダー。

Builderは、スレッドnameなどのThreadプロパティを設定するためのメソッドを定義します。 これには、それ以外の場合は「継承」のプロパティが含まれます。 設定すると、次のメソッドを使用してThreadまたはThreadFactoryが作成されます:

  • 「未開始」メソッドは、タスクを実行するための新しい「未開始」 Threadを作成します。 実行するスレッドをスケジュールするには、Threadstartメソッドを起動する必要があります。
  • startメソッドは、タスクを実行する新しい Threadを作成し、スレッドの実行をスケジュールします。
  • factoryメソッドは、ThreadFactoryを作成します。

Thread.Builderはスレッド・セーフではありません。 ビルダーのfactory()メソッドによって返されるThreadFactoryは、スレッド・セーフです。

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

導入されたバージョン:
19
関連項目:
  • メソッドの詳細

    • name

      スレッドの名前を設定します。
      パラメータ:
      name - スレッド名
      戻り値:
      このビルダー
    • name

      Thread.BuilderPREVIEW name(String prefix, long start)
      スレッド名を文字列プレフィクスとカウンタ値の文字列表現の連結に設定します。 カウンタの初期値はstartです。 このビルダーでThreadが作成されると、次のスレッドに新しいカウンタ値を使用して名前が付けられるように増分されます。 このビルダーで作成されたThreadFactoryには、カウンタの現在の値がシードされます。 ThreadFactoryは、newThreadを使用してThreadを作成した後にカウンタのコピーを増分します。
      APIのノート:
      次の例では、"worker-0"および"worker-1"という名前の2つのスレッドを開始するために2回起動されるビルダーを作成します。
        Thread.Builder builder = Thread.ofPlatform().name("worker-", 0);
        Thread t1 = builder.start(task1);   // name "worker-0"
        Thread t2 = builder.start(task2);   // name "worker-1"
      
      パラメータ:
      prefix - スレッド名のプレフィクス
      start - カウンタの開始値
      戻り値:
      このビルダー
      例外:
      IllegalArgumentException - startが負の場合
    • allowSetThreadLocals

      Thread.BuilderPREVIEW allowSetThreadLocals(boolean allow)
      スレッドがthread-local変数のコピーに値を設定できるかどうかを設定します。 デフォルトでは許可されます。 許可されない場合、スレッドがThreadLocal.set(Object)メソッドを使用してスレッド・ローカルの値を設定しようとすると、 UnsupportedOperationExceptionがスローされます。 setContextClassLoaderを使用してスレッド・コンテキスト・クラス・ローダーを設定しようとすると、スローされます。 スレッド・ロケールが許可されていない場合、ThreadLocal.get()メソッドは常にinitial-valueを返します。
      APIのノート:
      このメソッドは、多数のスレッドがあり、スレッドのローカルが原因でバインドされていないメモリーが使用される可能性がある場合に役立ちます。 スレッドがスレッド・ローカル変数のコピーを設定することを禁止すると、実行時に例外が発生する可能性があるため、スレッドを使用して任意のコードを呼び出すときは十分に注意してください。
      パラメータ:
      allow - 許可するにはtrue、禁止するにはfalse
      戻り値:
      このビルダー
    • inheritInheritableThreadLocals

      Thread.BuilderPREVIEW inheritInheritableThreadLocals(boolean inherit)
      スレッドが構築スレッドからinheritable-thread-local変数の初期値を継承するかどうかを設定します。 デフォルトでは継承されます。

      InheritableThreadLocalの初期値は、allowSetThreadLocals(boolean)を使用してスレッドがスレッド・ローカル変数の独自のコピーを許可しない場合、継承されません。

      パラメータ:
      inherit - 継承するtrue、継承しないfalse
      戻り値:
      このビルダー
    • uncaughtExceptionHandler

      捕捉されない例外ハンドラを設定します。
      パラメータ:
      ueh - 捕捉されない例外ハンドラ
      戻り値:
      このビルダー
    • unstarted

      Thread unstarted(Runnable task)
      指定されたタスクを実行するために、ビルダーの現在の状態から新しいThreadを作成します。 実行するスレッドをスケジュールするには、Threadstartメソッドを起動する必要があります。
      パラメータ:
      task - スレッドの実行時に実行するオブジェクト
      戻り値:
      新規未開始スレッド
      例外:
      SecurityException - セキュリティ・マネージャ(「プラットフォーム・スレッド作成時のセキュリティ・マネージャとの相互作用」を参照してください)によって拒否された場合
      関連項目:
    • start

      Thread start(Runnable task)
      ビルダーの現在の状態から新しいThreadを作成し、実行するようにスケジュールします。
      パラメータ:
      task - スレッドの実行時に実行するオブジェクト
      戻り値:
      新規開始スレッド
      例外:
      SecurityException - セキュリティ・マネージャ(「プラットフォーム・スレッド作成時のセキュリティ・マネージャとの相互作用」を参照してください)によって拒否された場合
      関連項目:
    • factory

      ThreadFactory factory()
      ビルダーの現在の状態からスレッドを作成するためにThreadFactoryを返します。 返されたスレッド・ファクトリは、複数の同時スレッドで使用しても安全です。
      戻り値:
      スレッドを作成するためのスレッド・ファクトリ