JavaTM 2
Platform
Std. Ed. v1.4.0

java.lang
クラス ThreadGroup

java.lang.Object
  |
  +--java.lang.ThreadGroup

public class ThreadGroup
extends Object

スレッドグループは、スレッドの集合を表します。さらに、スレッドグループにはほかのスレッドグループが含まれることもあります。スレッドグループは木を形成し、最初のスレッドグループを除いてその中で親を持ちます。

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

導入されたバージョン:
JDK1.0

コンストラクタの概要
ThreadGroup(String name)
          新しいスレッドグループを構築します。
ThreadGroup(ThreadGroup parent, String name)
          新しいスレッドグループを作成します。
 
メソッドの概要
 int activeCount()
          このスレッドグループ内のアクティブスレッドのおおよその数を返します。
 int activeGroupCount()
          このスレッドグループ内のアクティブグループのおおよその数を返します。
 boolean allowThreadSuspension(boolean b)
          推奨されていません。 この呼び出しの定義は、推奨されていない suspend() に依存します。また、この呼び出しの動作は保証されません。
 void checkAccess()
          現在実行中のスレッドがこのスレッドグループを変更するアクセス権を持っているかどうかを判定します。
 void destroy()
          このスレッドグループとそのサブグループのすべてを破棄します。
 int enumerate(Thread[] list)
          このスレッドグループとそのサブグループ内の各アクティブスレッドを、指定された配列にコピーします。
 int enumerate(Thread[] list, boolean recurse)
          このスレッドグループ内の各アクティブスレッドを、指定された配列にコピーします。
 int enumerate(ThreadGroup[] list)
          このスレッドグループ内の各アクティブサブグループへの参照を、指定された配列にコピーします。
 int enumerate(ThreadGroup[] list, boolean recurse)
          このスレッドグループ内の各アクティブサブグループへの参照を、指定された配列にコピーします。
 int getMaxPriority()
          このスレッドグループの最高優先順位を返します。
 String getName()
          このスレッドグループの名前を返します。
 ThreadGroup getParent()
          このスレッドグループの親を返します。
 void interrupt()
          このスレッドグループ内のすべてのスレッドに割り込みます。
 boolean isDaemon()
          このスレッドグループがデーモンスレッドグループであるかどうかを判定します。
 boolean isDestroyed()
          このスレッドグループが破棄されたかどうかを判定します。
 void list()
          このスレッドグループについての情報を標準出力に出力します。
 boolean parentOf(ThreadGroup g)
          このスレッドグループがスレッドグループ引数であるか、あるいはその上位スレッドグループの内の 1 つであるかどうかを判定します。
 void resume()
          推奨されていません。 このメソッドは Thread.suspend および ThreadGroup.suspend との組み合わせでのみ使用されます。どれもデッドロックを発生しやすいため推奨されません。詳細は Thread.suspend() を参照してください。
 void setDaemon(boolean daemon)
          このスレッドグループのデーモンの状態を変更します。
 void setMaxPriority(int pri)
          グループの最高優先順位を設定します。
 void stop()
          推奨されていません。 このメソッドは本質的に安全ではありません。詳細は Thread.stop() を参照してください。
 void suspend()
          推奨されていません。 このメソッドはデッドロックを発生しやすいため推奨されません。詳細は Thread.suspend() を参照してください。
 String toString()
          この ThreadGroup の文字列表現を返します。
 void uncaughtException(Thread t, Throwable e)
          このスレッドグループ内のスレッドが、キャッチされていない例外のために停止すると、Java 仮想マシンによって呼び出されます。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

ThreadGroup

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

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

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

ThreadGroup

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

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

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

getName

public final String getName()
このスレッドグループの名前を返します。

戻り値:
このスレッドグループの名前
導入されたバージョン:
JDK1.0

getParent

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

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

戻り値:
このスレッドグループの親。親が null であるスレッドグループは、トップレベルのスレッドグループだけです
例外:
SecurityException - 現在のスレッドがこのスレッドグループを変更できない場合
導入されたバージョン:
JDK1.0
関連項目:
checkAccess(), SecurityException, RuntimePermission

getMaxPriority

public final int getMaxPriority()
このスレッドグループの最高優先順位を返します。このグループの一部であるスレッドに、最高優先順位より高い優先順位を指定することはできません。

戻り値:
このスレッドグループ内のスレッドに指定できる最高優先順位
導入されたバージョン:
JDK1.0
関連項目:
setMaxPriority(int)

isDaemon

public final boolean isDaemon()
このスレッドグループがデーモンスレッドグループであるかどうかを判定します。デーモンスレッドグループは、その最後のスレッドが停止する場合、または最後のスレッドグループが破棄される場合には自動的に破棄されます。

戻り値:
このスレッドグループがデーモンスレッドグループである場合は true、そうでない場合は false
導入されたバージョン:
JDK1.0

isDestroyed

public boolean isDestroyed()
このスレッドグループが破棄されたかどうかを判定します。

戻り値:
このオブジェクトが破棄されている場合は true
導入されたバージョン:
JDK1.1

setDaemon

public final void setDaemon(boolean daemon)
このスレッドグループのデーモンの状態を変更します。

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

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

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

setMaxPriority

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

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

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

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

パラメータ:
pri - スレッドグループの新しい優先順位
例外:
SecurityException - 現在のスレッドがこのスレッドグループを変更できない場合
導入されたバージョン:
JDK1.0
関連項目:
getMaxPriority(), SecurityException, checkAccess()

parentOf

public final boolean parentOf(ThreadGroup g)
このスレッドグループがスレッドグループ引数であるか、あるいはその上位スレッドグループの内の 1 つであるかどうかを判定します。

パラメータ:
g - スレッドグループ
戻り値:
このスレッドグループがスレッドグループ引数であるか、またはその上位スレッドグループの内の 1 つである場合は true、そうでない場合は false
導入されたバージョン:
JDK1.0

checkAccess

public final void checkAccess()
現在実行中のスレッドがこのスレッドグループを変更するアクセス権を持っているかどうかを判定します。

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

例外:
SecurityException - 現在のスレッドがこのスレッドグループへのアクセスを許されていない場合
導入されたバージョン:
JDK1.0
関連項目:
SecurityManager.checkAccess(java.lang.ThreadGroup)

activeCount

public int activeCount()
このスレッドグループ内のアクティブスレッドのおおよその数を返します。

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

enumerate

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

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

アプリケーションは、配列をどの程度の大きさになるかについてのおおよその数を取得する場合は activeCount メソッドを使用する必要があります。配列が小さすぎてすべてのスレッドを保持できない場合、余分なスレッドは通知なしに無視されます。

パラメータ:
list - スレッドのリストの格納先である配列
戻り値:
配列に格納されるスレッド数
例外:
SecurityException - 現在のスレッドに、このスレッドグループを列挙するためのアクセス権がない場合
導入されたバージョン:
JDK1.0
関連項目:
activeCount(), checkAccess()

enumerate

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

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

アプリケーションは、配列がどの程度の大きさになるかについてのおおよその数を取得する場合は activeCount メソッドを使用する必要があります。

パラメータ:
list - スレッドのリストの格納先である配列
recurse - このスレッドグループのサブグループであるスレッドグループ内のスレッドも含むかどうかを示すフラグ
戻り値:
配列に格納されるスレッド数
例外:
SecurityException - 現在のスレッドに、このスレッドグループを列挙するためのアクセス権がない場合
導入されたバージョン:
JDK1.0
関連項目:
activeCount(), checkAccess()

activeGroupCount

public int activeGroupCount()
このスレッドグループ内のアクティブグループのおおよその数を返します。

戻り値:
このスレッドグループを上位に持つアクティブスレッドグループの数
導入されたバージョン:
JDK1.0

enumerate

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

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

アプリケーションは、配列がどの程度の大きさになるのかについてのおおよその数を取得する場合は、activeGroupCount メソッドを使用する必要があります。配列が小さすぎてすべてのスレッドグループを保持できない場合、余分なスレッドグループは通知なしに無視されます。

パラメータ:
list - スレッドグループのリストの格納先の配列
戻り値:
配列に格納されるスレッドグループ数
例外:
SecurityException - 現在のスレッドに、このスレッドグループを列挙するためのアクセス権がない場合
導入されたバージョン:
JDK1.0
関連項目:
activeGroupCount(), checkAccess()

enumerate

public int enumerate(ThreadGroup[] list,
                     boolean recurse)
このスレッドグループ内の各アクティブサブグループへの参照を、指定された配列にコピーします。recurse フラグが true である場合、サブグループなどのすべてのアクティブサブグループへの参照も含まれます。

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

アプリケーションは、配列がどの程度の大きさになるのかについてのおおよその数を取得する場合は、activeGroupCount メソッドを使用する必要があります。

パラメータ:
list - スレッドのリストの格納先である配列
recurse - 含まれるすべてのスレッドグループを再帰的に列挙するかどうかを示すフラグ
戻り値:
配列に格納されるスレッドグループ数
例外:
SecurityException - 現在のスレッドに、このスレッドグループを列挙するためのアクセス権がない場合
導入されたバージョン:
JDK1.0
関連項目:
activeGroupCount(), checkAccess()

stop

public final void stop()
推奨されていません。 このメソッドは本質的に安全ではありません。詳細は Thread.stop() を参照してください。

このスレッドグループ内のすべてのスレッドを停止します。

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

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

例外:
SecurityException - 現在のスレッドが、このスレッドグループまたはスレッドグループ内のスレッドへのアクセスを許可されない場合
導入されたバージョン:
JDK1.0
関連項目:
SecurityException, Thread.stop(), checkAccess()

interrupt

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

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

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

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

suspend

public final void suspend()
推奨されていません。 このメソッドはデッドロックを発生しやすいため推奨されません。詳細は Thread.suspend() を参照してください。

このスレッドグループ内のすべてのスレッドを停止します。

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

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

例外:
SecurityException - 現在のスレッドが、このスレッドグループまたはスレッドグループ内のスレッドへのアクセスを許可されない場合
導入されたバージョン:
JDK1.0
関連項目:
Thread.suspend(), SecurityException, checkAccess()

resume

public final void resume()
推奨されていません。 このメソッドは Thread.suspend および ThreadGroup.suspend との組み合わせでのみ使用されます。どれもデッドロックを発生しやすいため推奨されません。詳細は Thread.suspend() を参照してください。

このスレッドグループ内のすべてのスレッドを再開します。

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

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

例外:
SecurityException - 現在のスレッドが、このスレッドグループまたはスレッドグループ内のスレッドへのアクセスを許可されない場合
導入されたバージョン:
JDK1.0
関連項目:
SecurityException, Thread.resume(), checkAccess()

destroy

public final void destroy()
このスレッドグループとそのサブグループのすべてを破棄します。このスレッドグループ内にあったすべてのスレッドが停止されていること、つまり、このスレッドグループが空でなければなりません。

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

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

list

public void list()
このスレッドグループについての情報を標準出力に出力します。このメソッドはデバッグの場合にだけ役立ちます。

導入されたバージョン:
JDK1.0

uncaughtException

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

ThreadGroupuncaughtException メソッドは以下を実行します。

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

パラメータ:
t - 終了しようとしているスレッド
e - キャッチされていない例外
導入されたバージョン:
JDK1.0
関連項目:
System.err, ThreadDeath, Throwable.printStackTrace(java.io.PrintStream)

allowThreadSuspension

public boolean allowThreadSuspension(boolean b)
推奨されていません。 この呼び出しの定義は、推奨されていない suspend() に依存します。また、この呼び出しの動作は保証されません。

メモリ不足による暗黙の中断を制御するために VM によって使用されます。

パラメータ:
b - 中断を可能または不可にする boolean
戻り値:
成功した場合は true
導入されたバージョン:
JDK1.1

toString

public String toString()
この ThreadGroup の文字列表現を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
このスレッドグループの文字列表現
導入されたバージョン:
JDK1.0

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.