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

クラスThreadGroup

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

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

スレッドは、それ自体のスレッド・グループについての情報にアクセスすることを許可されていますが、そのスレッド・グループの親スレッド・グループまたはその他のスレッド・グループについての情報にアクセスすることはできません。

導入されたバージョン:
1.0
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    新しいスレッド・グループを構築します。
    新しいスレッド・グループを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    このスレッド・グループとそのサブグループに含まれるアクティブ・スレッドのおおよその数を返します。
    int
    このスレッド・グループとそのサブグループに含まれるアクティブ・グループのおおよその数を返します。
    boolean
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    この呼出しの定義は、非推奨のsuspend()に依存します。
    final void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このメソッドは、非推奨であり、今後のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。
    final void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    ThreadGroupを破棄するためのAPIおよびメカニズムには本質的に欠陥があります。
    int
    enumerate(Thread[] list)
    このスレッド・グループとそのサブグループ内の各アクティブ・スレッドを、指定された配列にコピーします。
    int
    enumerate(Thread[] list, boolean recurse)
    このスレッド・グループ内の各アクティブ・スレッドを、指定された配列にコピーします。
    int
    このスレッド・グループとそのサブグループに含まれる各アクティブ・サブグループへの参照を、指定された配列にコピーします。
    int
    enumerate(ThreadGroup[] list, boolean recurse)
    このスレッド・グループ内の各アクティブ・サブグループへの参照を、指定された配列にコピーします。
    final int
    このスレッド・グループの最高優先順位を返します。
    final String
    このスレッド・グループの名前を返します。
    このスレッド・グループの親を返します。
    final void
    このスレッド・グループ内のすべてのスレッドに割り込みます。
    final boolean
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    ThreadGroupを破棄するためのAPIおよびメカニズムには本質的に欠陥があります。
    boolean
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    ThreadGroupを破棄するためのAPIおよびメカニズムには本質的に欠陥があります。
    void
    このスレッド・グループについての情報を標準出力に出力します。
    final boolean
    このスレッド・グループがスレッドグループ引数であるか、あるいはその祖先スレッド・グループの内の1つであるかどうかを判定します。
    final void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このメソッドはThread.suspendおよびThreadGroup.suspendとの組合せでのみ使用されますが、これらはどちらも本質的にデッドロックを発生させやすいため推奨されていません。
    final void
    setDaemon(boolean daemon)
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    ThreadGroupを破棄するためのAPIおよびメカニズムには本質的に欠陥があります。
    final void
    setMaxPriority(int pri)
    グループの最高優先順位を設定します。
    final void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このメソッドは本質的に安全ではありません。
    final void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このメソッドは本質的にデッドロックを発生させやすくなっています。
    このスレッド・グループの文字列表現を返します。
    void
    このスレッド・グループ内のスレッドが、キャッチされていない例外のために停止し、スレッドに固有のThread.UncaughtExceptionHandlerが備えられていないときに、Java仮想マシンによって呼び出されます。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • ThreadGroup

      public ThreadGroup(String name)
      新しいスレッド・グループを構築します。 この新しいグループの親が、現在実行中のスレッドのスレッド・グループです。

      親スレッド・グループのcheckAccessメソッドは、引数なしで呼び出されます。この結果、セキュリティ例外が発生することがあります。

      パラメータ:
      name - 新しいスレッド・グループの名前。
      例外:
      SecurityException - 現在のスレッドが、指定されたスレッド・グループ内のスレッドを作成できない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • ThreadGroup

      public ThreadGroup(ThreadGroup parent, String name)
      新しいスレッド・グループを作成します。 この新しいグループの親が、指定されたスレッド・グループです。

      親スレッド・グループのcheckAccessメソッドは、引数なしで呼び出されます。この結果、セキュリティ例外が発生することがあります。

      パラメータ:
      parent - 親のスレッド・グループ。
      name - 新しいスレッド・グループの名前。
      例外:
      NullPointerException - スレッド・グループの引数がnullの場合。
      SecurityException - 現在のスレッドが、指定されたスレッド・グループ内のスレッドを作成できない場合。
      導入されたバージョン:
      1.0
      関連項目:
  • メソッドの詳細

    • getName

      public final String getName()
      このスレッド・グループの名前を返します。
      戻り値:
      このスレッド・グループの名前。
      導入されたバージョン:
      1.0
    • getParent

      public final ThreadGroup getParent()
      このスレッド・グループの親を返します。

      親がnullでない場合、最初に親スレッド・グループのcheckAccessメソッドが引数なしで呼び出されます。この結果、セキュリティ例外がスローされることがあります。

      戻り値:
      このスレッド・グループの親。 親がnullであるスレッド・グループは、トップ・レベルのスレッド・グループのみ。
      例外:
      SecurityException - 現在のスレッドがこのスレッド・グループを変更できない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • getMaxPriority

      public final int getMaxPriority()
      このスレッド・グループの最高優先順位を返します。 このグループの一部であるスレッドに、最高優先順位より高い優先順位を指定することはできません。
      戻り値:
      このスレッド・グループ内のスレッドに指定できる最高優先順位。
      導入されたバージョン:
      1.0
      関連項目:
    • isDaemon

      @Deprecated(since="16", forRemoval=true) public final boolean isDaemon()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      ThreadGroupを破棄するためのAPIおよびメカニズムには本質的に欠陥があります。 スレッド・グループおよびデーモン・スレッド・グループの概念を明示的または自動的に破棄する機能は、将来のリリースで削除されます。
      このスレッド・グループがデーモン・スレッド・グループであるかどうかを判定します。 デーモン・スレッド・グループは、その最後のスレッドが停止する場合、またはその最後のスレッド・グループが破棄される場合に自動的に破棄されます。
      戻り値:
      このスレッド・グループがデーモン・スレッド・グループである場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.0
    • isDestroyed

      @Deprecated(since="16", forRemoval=true) public boolean isDestroyed()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      ThreadGroupを破棄するためのAPIおよびメカニズムには本質的に欠陥があります。 スレッド・グループを明示的または自動的に破棄する機能は、将来のリリースで削除されます。
      このスレッド・グループが破棄されたかどうかを判定します。
      戻り値:
      このオブジェクトが破棄されている場合はtrue
      導入されたバージョン:
      1.1
    • setDaemon

      @Deprecated(since="16", forRemoval=true) public final void setDaemon(boolean daemon)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      ThreadGroupを破棄するためのAPIおよびメカニズムには本質的に欠陥があります。 スレッド・グループおよびデーモン・スレッド・グループの概念を明示的または自動的に破棄する機能は、将来のリリースで削除されます。
      このスレッド・グループのデーモンの状態を変更します。

      まず、このスレッド・グループのcheckAccessメソッドが引数なしで呼び出されます。この結果、セキュリティ例外がスローされることがあります。

      デーモン・スレッド・グループは、その最後のスレッドが停止する場合、またはその最後のスレッド・グループが破棄される場合に自動的に破棄されます。

      パラメータ:
      daemon - trueの場合は、このスレッド・グループをデーモン・スレッド・グループとしてマークし、そうでない場合は、このスレッド・グループを一般のものとしてマークする。
      例外:
      SecurityException - 現在のスレッドがこのスレッド・グループを変更できない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • setMaxPriority

      public final void setMaxPriority(int pri)
      グループの最高優先順位を設定します。 すでにさらに高い優先順位が指定されているスレッド・グループ内のスレッドは影響を受けません。

      まず、このスレッド・グループのcheckAccessメソッドが引数なしで呼び出されます。この結果、セキュリティ例外がスローされることがあります。

      pri引数の値がThread.MIN_PRIORITYより小さいか、Thread.MAX_PRIORITYより大きい場合、グループの最大優先順位は変更されません。

      それ以外の場合、このThreadGroupオブジェクトの優先順位は、指定されたpriおよびこのスレッド・グループの親に許可される最高優先順位より低く設定されます。 (このスレッド・グループが、親を持たないシステム・スレッド・グループの場合、その最高優先順位はpriだけに設定される。) その後、このスレッド・グループに属するスレッド・グループごとに、このメソッドがpriを引数として再帰的に呼び出されます。

      パラメータ:
      pri - スレッド・グループの新しい優先順位。
      例外:
      SecurityException - 現在のスレッドがこのスレッド・グループを変更できない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • parentOf

      public final boolean parentOf(ThreadGroup g)
      このスレッド・グループがスレッドグループ引数であるか、あるいはその祖先スレッド・グループの内の1つであるかどうかを判定します。
      パラメータ:
      g - スレッド・グループ。
      戻り値:
      このスレッド・グループがスレッドグループ引数であるか、またはその祖先スレッド・グループの内の1つである場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.0
    • checkAccess

      @Deprecated(since="17", forRemoval=true) public final void checkAccess()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      このメソッドは、非推奨であり、今後のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。 そのため、このメソッドは非推奨であり、削除される可能性があります。 Security Managerまたはこのメソッドに置換はありません。
      現在実行中のスレッドがこのスレッド・グループを変更するアクセス権を持っているかどうかを判定します。

      セキュリティ・マネージャが存在する場合、このグループがその引数として指定され、そのcheckAccessメソッドが呼び出されます。 その結果、SecurityExceptionがスローされることがあります。

      例外:
      SecurityException - 現在のスレッドがこのスレッド・グループへのアクセスを許されていない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • activeCount

      public int activeCount()
      このスレッド・グループとそのサブグループに含まれるアクティブ・スレッドのおおよその数を返します。 このスレッド・グループ内のすべてのサブグループについて再帰的に反復します。

      返される値は単なる推定値ですが、それは、このメソッドが内部のデータ構造体をトラバースしている間にスレッド数が動的に変化する可能性があるほか、特定のシステム・スレッドの存在の影響を受ける可能性もあるからです。 このメソッドは主に、デバッグおよび監視目的のためのものです。

      戻り値:
      このスレッド・グループ内、またはこのスレッド・グループを上位に持つその他のスレッド・グループの内のアクティブ・スレッドのおよその数
      導入されたバージョン:
      1.0
    • enumerate

      public int enumerate(Thread[] list)
      このスレッド・グループとそのサブグループ内の各アクティブ・スレッドを、指定された配列にコピーします。

      このメソッド呼出しの動作は、次の呼出しの動作とまったく同一です。

      enumerate(list, true)

      パラメータ:
      list - スレッドのリストの格納先である配列
      戻り値:
      配列に格納されるスレッド数
      例外:
      SecurityException - 現在のスレッドはこのスレッド・グループにアクセスできないとcheckAccessによって判定された場合
      導入されたバージョン:
      1.0
    • enumerate

      public int enumerate(Thread[] list, boolean recurse)
      このスレッド・グループ内の各アクティブ・スレッドを、指定された配列にコピーします。 recursetrueの場合、このメソッドは再帰的にこのスレッド・グループのすべてのサブグループを列挙するので、それらのサブグループ内のすべてのアクティブ・スレッドへの参照も含められます。 配列が小さすぎてすべてのスレッドを保持できない場合、余分なスレッドは通知なしに無視されます。

      アプリケーションでは、配列がどの程度の大きさになるかについておよその数を取得するためにactiveCountメソッドを使用する場合があります。ただし、配列が小さすぎてすべてのスレッドを保持できない場合、余分なスレッドは通知なしに無視されます。 このスレッド・グループにあるすべてのアクティブ・スレッドを取得することが重要な場合、呼出し側は返された整数値が厳密にlistの長さ未満であることを確認する必要があります。

      このメソッドの本質的な競合条件のため、このメソッドはデバッグおよび監視目的にのみ使用することをお薦めします。

      パラメータ:
      list - スレッドのリストの格納先である配列
      recurse - trueの場合、このスレッド・グループのすべてのサブグループを再帰的に列挙する
      戻り値:
      配列に格納されるスレッド数
      例外:
      SecurityException - 現在のスレッドはこのスレッド・グループにアクセスできないとcheckAccessによって判定された場合
      導入されたバージョン:
      1.0
    • activeGroupCount

      public int activeGroupCount()
      このスレッド・グループとそのサブグループに含まれるアクティブ・グループのおおよその数を返します。 このスレッド・グループ内のすべてのサブグループについて再帰的に反復します。

      このメソッドが内部のデータ構造をトラバースしている間にも、スレッド・グループ数が動的に変化する場合があるため、返される値は推定に過ぎません。 このメソッドは主に、デバッグおよび監視目的のためのものです。

      戻り値:
      このスレッド・グループを祖先に持つアクティブ・スレッド・グループの数
      導入されたバージョン:
      1.0
    • enumerate

      public int enumerate(ThreadGroup[] list)
      このスレッド・グループとそのサブグループに含まれる各アクティブ・サブグループへの参照を、指定された配列にコピーします。

      このメソッド呼出しの動作は、次の呼出しの動作とまったく同一です。

      enumerate(list, true)

      パラメータ:
      list - スレッド・グループのリストの格納先である配列
      戻り値:
      配列に格納されるスレッド・グループ数
      例外:
      SecurityException - 現在のスレッドはこのスレッド・グループにアクセスできないとcheckAccessによって判定された場合
      導入されたバージョン:
      1.0
    • enumerate

      public int enumerate(ThreadGroup[] list, boolean recurse)
      このスレッド・グループ内の各アクティブ・サブグループへの参照を、指定された配列にコピーします。 recursetrueの場合、このメソッドは再帰的にこのスレッド・グループのすべてのサブグループを列挙するので、それらのサブグループ内のすべてのアクティブ・スレッド・グループへの参照も含められます。

      アプリケーションでは、配列がどの程度の大きさになるかについておよその数を取得するためにactiveGroupCountメソッドを使用する場合があります。ただし、配列が小さすぎてすべてのスレッド・グループを保持できない場合、余分なスレッド・グループは通知なしに無視されます。 このスレッド・グループにあるすべてのアクティブ・サブグループを取得することが重要な場合、呼出し側は返された整数値が厳密にlistの長さ未満であることを確認する必要があります。

      このメソッドの本質的な競合条件のため、このメソッドはデバッグおよび監視目的にのみ使用することをお薦めします。

      パラメータ:
      list - スレッド・グループのリストの格納先である配列
      recurse - trueの場合、すべてのサブグループを再帰的に列挙する
      戻り値:
      配列に格納されるスレッド・グループ数
      例外:
      SecurityException - 現在のスレッドはこのスレッド・グループにアクセスできないとcheckAccessによって判定された場合
      導入されたバージョン:
      1.0
    • stop

      @Deprecated(since="1.2", forRemoval=true) public final void stop()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      このメソッドは本質的に安全ではありません。 詳細については、Thread.stop()を参照してください。
      このスレッド・グループ内のすべてのスレッドを停止します。

      まず、このスレッド・グループのcheckAccessメソッドが引数なしで呼び出されます。この結果、セキュリティ例外がスローされることがあります。

      次にこのメソッドは、このスレッド・グループとそのすべてのサブグループ内のすべてのスレッドについてstopメソッドを呼び出します。

      例外:
      SecurityException - 現在のスレッドが、このスレッド・グループまたはスレッド・グループ内のスレッドへのアクセスを許可されない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • interrupt

      public final void interrupt()
      このスレッド・グループ内のすべてのスレッドに割り込みます。

      まず、このスレッド・グループのcheckAccessメソッドが引数なしで呼び出されます。この結果、セキュリティ例外がスローされることがあります。

      次にこのメソッドは、このスレッド・グループとそのすべてのサブグループ内のすべてのスレッドについてinterruptメソッドを呼び出します。

      例外:
      SecurityException - 現在のスレッドが、このスレッド・グループまたはスレッド・グループ内のスレッドへのアクセスを許可されない場合。
      導入されたバージョン:
      1.2
      関連項目:
    • suspend

      @Deprecated(since="1.2", forRemoval=true) public final void suspend()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      このメソッドは本質的にデッドロックを発生させやすくなっています。 詳細については、Thread.suspend()を参照してください。
      このスレッド・グループ内のすべてのスレッドを停止します。

      まず、このスレッド・グループのcheckAccessメソッドが引数なしで呼び出されます。この結果、セキュリティ例外がスローされることがあります。

      次にこのメソッドは、このスレッド・グループとそのすべてのサブグループ内のすべてのスレッドについてsuspendメソッドを呼び出します。

      例外:
      SecurityException - 現在のスレッドが、このスレッド・グループまたはスレッド・グループ内のスレッドへのアクセスを許可されない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • resume

      @Deprecated(since="1.2", forRemoval=true) public final void resume()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      このメソッドはThread.suspendおよびThreadGroup.suspendとの組合せでのみ使用されますが、これらはどちらも本質的にデッドロックを発生させやすいため推奨されていません。 詳細については、Thread.suspend()を参照してください。
      このスレッド・グループ内のすべてのスレッドを再開します。

      まず、このスレッド・グループのcheckAccessメソッドが引数なしで呼び出されます。この結果、セキュリティ例外がスローされることがあります。

      次にこのメソッドは、このスレッド・グループとそのすべてのサブグループ内のすべてのスレッドについてresumeメソッドを呼び出します。

      例外:
      SecurityException - 現在のスレッドが、このスレッド・グループまたはスレッド・グループ内のスレッドへのアクセスを許可されない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • destroy

      @Deprecated(since="16", forRemoval=true) public final void destroy()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      ThreadGroupを破棄するためのAPIおよびメカニズムには本質的に欠陥があります。 スレッド・グループを明示的または自動的に破棄する機能は、将来のリリースで削除されます。
      このスレッド・グループとそのサブグループのすべてを破棄します。 このスレッド・グループ内にあったすべてのスレッドが停止されていること、つまり、このスレッド・グループが空である必要があります。

      まず、このスレッド・グループのcheckAccessメソッドが引数なしで呼び出されます。この結果、セキュリティ例外がスローされることがあります。

      例外:
      IllegalThreadStateException - スレッド・グループが空ではない場合、またはスレッド・グループがすでに破棄されている場合。
      SecurityException - 現在のスレッドがこのスレッド・グループを変更できない場合。
      導入されたバージョン:
      1.0
      関連項目:
    • list

      public void list()
      このスレッド・グループについての情報を標準出力に出力します。 このメソッドはデバッグの場合にだけ役立ちます。
      導入されたバージョン:
      1.0
    • uncaughtException

      public void uncaughtException(Thread t, Throwable e)
      このスレッド・グループ内のスレッドが、キャッチされていない例外のために停止し、スレッドに固有のThread.UncaughtExceptionHandlerが備えられていないときに、Java仮想マシンによって呼び出されます。

      ThreadGroupuncaughtExceptionメソッドは次の処理を行います。

      • このスレッド・グループに親スレッド・グループがある場合、その親のuncaughtExceptionメソッドは同じ2つの引数が指定されて呼び出されます。
      • そうでない場合、このメソッドはデフォルトのキャッチされない例外のハンドラが備えられているかどうかをチェックする。備えられている場合は、同じ2つの引数を使ってuncaughtExceptionメソッドが呼び出されます。
      • それ以外の場合、このメソッドはThrowable引数がThreadDeathのインスタンスかどうかを判定します。 このインスタンスである場合は、特別なことは実行されません。 それ以外の場合、スレッドのgetNameメソッドから返されるスレッド名と、ThrowableprintStackTraceメソッドによるスタック・バックトレースとを含むメッセージが、標準エラー・ストリームに出力されます。

      アプリケーションは、ThreadGroupのサブクラスでこのメソッドをオーバーライドして、キャッチされていない例外を別の方法で処理できます。

      定義:
      uncaughtException、インタフェースThread.UncaughtExceptionHandler
      パラメータ:
      t - 終了しようとしているスレッド。
      e - キャッチされていない例外。
      導入されたバージョン:
      1.0
    • allowThreadSuspension

      @Deprecated(since="1.2", forRemoval=true) public boolean allowThreadSuspension(boolean b)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      この呼出しの定義は、非推奨のsuspend()に依存します。 また、この呼出しの動作は指定されません。
      メモリー不足による暗黙の中断を制御するためにVMによって使用されます。
      パラメータ:
      b - 中断を可能または不可にするboolean
      戻り値:
      成功した場合は、true
      導入されたバージョン:
      1.1
    • toString

      public String toString()
      このスレッド・グループの文字列表現を返します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このスレッド・グループの文字列表現
      導入されたバージョン:
      1.0