●スレッド-5.スレッドのグループ化

このページではスレッドのグループ化についての説明を行います。スレッドのグループ化を行うことにより、そのスレッドグループに含まれるスレッドを一元管理することができるようになります。スレッドのグループ化はThreadGroupクラスにより実装されます。
スレッドグループの作成
スレッドを生成する際、スレッドをどのグループに含めるかの指定を行います。指定を行わない場合はそのスレッドを生成した時点のスレッドグループ(カレントスレッドグループ)と同じグループに属します。Javaが起動された時点ではmainという名前のスレッドグループが作られます。そのため、特にスレッドグループの指定をしない場合はmainスレッドグループに属することになります。アプレットの中でスレッドの生成を行った場合アプレットが動作しているブラウザやビューワによってはカレントスレッドグループがmainではない場合もあります。スレッドはスレッド生成時に属したスレッドグループに永久に属することになります。スレッドグループを途中で変更することはできません。

以下はスレッドグループ作成の際に使用されるコンストラクタです。
コンストラクタ
説明
ThreadGroup (String)
引数にスレッドグループ名を指定します。現在実行中のスレッドグループが、新しいスレッドグループの親スレッドグループになります。
ThreadGroup (ThreadGroup, String)
第1引数ThreadGroupに親スレッドグループを、第2引数Stringにスレッドグループ名を指定してスレッドグループの作成を行います。

【例1】

ThreadGroup ExThreadGroup =
  new ThreadGroup("MyThreadGroup");
//ExThreadGroupというスレッドグループの作成を行います。
スレッドをスレッドグループに含めるためにはスレッド生成の際、引数にスレッドグループを指定します。以下はスレッド生成時にスレッドグループを指定するために用意されているコンストラクタです。
コンストラクタ
説明
Thread
(ThreadGroup, Runnable)
第1引数ThreadGroupに生成するスレッドが属するスレッドグループ、第2引数Runnableにスレッドが実行するオブジェクトを指定してスレッドの作成を行います。
Thread
(ThreadGroup, String)
第1引数ThreadGroupに生成するスレッドが属するスレッドグループ、第2引数Stringにスレッド名を指定してスレッドの作成を行います。
Thread
(ThreadGroup, Runnable, String)
第1引数ThreadGroupに生成するスレッドが属するスレッドグループ、第2引数Runnableにスレッドが実行するオブジェクト、第3引数Stringにスレッド名を指定してスレッドの作成を行います。

【例2】

Thread ExThread = 
  new Thread(ExThreadGroup, "membaer of ExThreadGroup");
//ExThreadスレッドを生成し、ExThradGroupグループに含めています。
ThreadGroupクラスのメソッド
ThreadGroupクラスにはスレッド管理のためにいくつかの便利なメソッドが用意されています。ここでは、そのメソッドのうちいくつかを紹介します。
戻り型
メソッド
説明
int
activeCount( )
スレッドグループ内のアクティブなおおよそのスレッド数を返します。
int
activeGroupCount( )
スレッドグループ内のアクティブなおおよそのスレッドグループ数を返します。
int
getMaxPriority( )
スレッドグループの最高優先度を返します。
void
setMaxPriority(int)
スレッドグループの最高優先度を設定します。
String
getName( )
スレッドグループ名を返します。
ThreadGroup
getParent( )
親スレッドグループ名を返します。
boolean
isDaemon( )
スレッドグループがデーモンスレッドグループかどうかを判定します。
void
setDaemon(boolean)
スレッドグループのデーモンの状態を変更します。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值