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

クラスThreadGroup

java.lang.Object
java.lang.ThreadGroup
すべての実装されたインタフェース:
Thread.UncaughtExceptionHandler

public class ThreadGroup extends Object implements Thread.UncaughtExceptionHandler
スレッド・グループは、スレッドの集合を表します。 さらに、スレッド・グループにはほかのスレッド・グループが含まれることもあります。 スレッド・グループはツリーを形成し、最初のスレッド・グループを除いてその中で親を持ちます。

スレッド・グループには名前と最大の優先順位があります。 名前はグループの作成時に指定され、変更できません。 グループの最大優先度は、グループ内で作成されたスレッドの最大優先度です。 最初は親スレッド・グループから継承されますが、setMaxPriorityメソッドを使用して変更できます。

スレッド・グループは親グループから弱い到達可能であるため、グループ内にliveスレッドがなく、それ以外のスレッド・グループがunreachableの場合にガベージ・コレクションの対象となります。

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

スレッド・グループと仮想スレッド

Javaランタイムにより、「仮想スレッド」の特別なスレッド・グループが作成されます。 このグループは、仮想スレッドで呼び出されたときにThread.getThreadGroupメソッドによって返されます。 スレッド・グループは、その最大優先度が固定されており、setMaxPriorityメソッドでは変更できません。 仮想スレッドは、activeCountメソッドによって返される推定スレッド数に含まれず、enumerateメソッドによって列挙されず、interruptメソッドによって中断されません。
APIのノート:
スレッド・グループは、以前のJavaリリースでスレッドをグループ化する方法を提供し、スレッドに対して「ジョブ制御」という形式を提供します。 スレッド・グループは、診断を目的としたアプレットおよび定義されたメソッドの分離をサポートしていました。 新しいアプリケーションでThreadGroupsを作成し、このAPIと対話することはまれです。
導入されたバージョン:
1.0