Java プラットフォーム 1.2

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 Virtual Machine によって呼び出されます。
 
クラス 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()

getMaxPriority

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

isDaemon

public final boolean isDaemon()
このスレッドグループがデーモンスレッドグループであるかどうかを判定します。デーモンスレッドグループは、その最後のスレッドが停止する場合、または最後のスレッドグループが破棄される場合には自動的に破棄されます。
戻り値:
このスレッドグループがデーモンスレッドグループである場合は true、そうでない場合は false
導入されたバージョン:
JDK1.0

isDestroyed

public boolean isDestroyed()
このスレッドグループが破棄されたかどうかを判定します。
導入されたバージョン:
JDK1.1

setDaemon

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

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

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

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

setMaxPriority

public final void setMaxPriority(int pri)
グループの最高優先順位を設定します。

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

すでにさらに高い優先順位が指定されているスレッドグループ内のスレッドは影響を受けません。

パラメータ:
pri - スレッドグループの新しい優先順位
例外:
SecurityException - 現在のスレッドが、このスレッドグループを変更できない場合
導入されたバージョン:
JDK1.0
関連項目:
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 - 現在のスレッドが、このスレッドグループまたはスレッドグループ内のスレッドへのアクセスを許可されない場合
導入されたバージョン:
JDK1.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 Virtual Machine によって呼び出されます。

ThreadGroup の uncaughtException メソッドは以下を実行します。

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

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

allowThreadSuspension

public boolean allowThreadSuspension(boolean b)
推奨されません。 この呼び出しの定義は、推奨されていない suspend() に依存します。また、この呼び出しの動作は保証されません。
メモリ不足による暗黙の中断を制御するために VM によって使用されます。
導入されたバージョン:
JDK1.1

toString

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

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.