- 既知のすべてのサブインタフェース:
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です。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
Thread
およびThreadFactory
オブジェクトのビルダー。
Builder
は、スレッドname
などのThread
プロパティを設定するためのメソッドを定義します。 これには、それ以外の場合は「継承」のプロパティが含まれます。 設定すると、次のメソッドを使用してThread
またはThreadFactory
が作成されます:
- 「未開始」メソッドは、タスクを実行するための新しい「未開始」
Thread
を作成します。 実行するスレッドをスケジュールするには、Thread
のstart
メソッドを起動する必要があります。 - startメソッドは、タスクを実行する新しい
Thread
を作成し、スレッドの実行をスケジュールします。 - factoryメソッドは、
ThreadFactory
を作成します。
Thread.Builder
はスレッド・セーフではありません。 ビルダーのfactory()
メソッドによって返されるThreadFactory
は、スレッド・セーフです。
特に指定しないかぎり、このインタフェースのメソッドにnull引数を渡すと、NullPointerException
がスローされます。
- 導入されたバージョン:
- 19
- 関連項目:
-
ネストされたクラスのサマリー
修飾子と型インタフェース説明static interface
Preview.プラットフォーム・スレッドを作成するプラットフォームThread
またはThreadFactory
を作成するためのビルダー。static interface
Preview.仮想スレッドを作成する仮想Thread
またはThreadFactory
を作成するためのビルダー。 -
メソッドのサマリー
修飾子と型メソッド説明allowSetThreadLocals
(boolean allow) スレッドがthread-local変数のコピーに値を設定できるかどうかを設定します。factory()
ビルダーの現在の状態からスレッドを作成するためにThreadFactory
を返します。inheritInheritableThreadLocals
(boolean inherit) スレッドが構築スレッドからinheritable-thread-local変数の初期値を継承するかどうかを設定します。スレッドの名前を設定します。スレッド名を文字列プレフィクスとカウンタ値の文字列表現の連結に設定します。ビルダーの現在の状態から新しいThread
を作成し、実行するようにスケジュールします。捕捉されない例外ハンドラを設定します。指定されたタスクを実行するために、ビルダーの現在の状態から新しいThread
を作成します。
-
メソッドの詳細
-
name
Thread.BuilderPREVIEW name(String 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
Thread.BuilderPREVIEW uncaughtExceptionHandler(Thread.UncaughtExceptionHandler ueh) 捕捉されない例外ハンドラを設定します。- パラメータ:
ueh
- 捕捉されない例外ハンドラ- 戻り値:
- このビルダー
-
unstarted
指定されたタスクを実行するために、ビルダーの現在の状態から新しいThread
を作成します。 実行するスレッドをスケジュールするには、Thread
のstart
メソッドを起動する必要があります。- パラメータ:
task
- スレッドの実行時に実行するオブジェクト- 戻り値:
- 新規未開始スレッド
- 例外:
SecurityException
- セキュリティ・マネージャ(「プラットフォーム・スレッド作成時のセキュリティ・マネージャとの相互作用」を参照してください)によって拒否された場合- 関連項目:
-
start
ビルダーの現在の状態から新しいThread
を作成し、実行するようにスケジュールします。- パラメータ:
task
- スレッドの実行時に実行するオブジェクト- 戻り値:
- 新規開始スレッド
- 例外:
SecurityException
- セキュリティ・マネージャ(「プラットフォーム・スレッド作成時のセキュリティ・マネージャとの相互作用」を参照してください)によって拒否された場合- 関連項目:
-
factory
ThreadFactory factory()ビルダーの現在の状態からスレッドを作成するためにThreadFactory
を返します。 返されたスレッド・ファクトリは、複数の同時スレッドで使用しても安全です。- 戻り値:
- スレッドを作成するためのスレッド・ファクトリ
-
Builder
を使用できます。