Javaスレッドグループ操作インスタンス分析
3006 ワード
この例では、Javaスレッドグループの操作について説明します.皆さんの参考にしてください.具体的には以下の通りです.
ほんの少し
1 JavaはThreadGroupを使用してスレッドグループを表し、一連のスレッドを分類管理することができ、Javaはプログラムが直接スレッドグループを制御することを許可する.
2あるスレッドが指定したスレッドグループに追加されると、スレッドはそのスレッドが死ぬまでスレッドグループに属し、スレッドの実行中にそのスレッドグループを変更することはできません.
3 Threadクラスでは、新しく作成したスレッドがどのスレッドグループに属するかを設定するコンストラクタがいくつか用意されています.
Thread(ThreadGroup Group,Runnable target):targetのrunメソッドをスレッド実行体として新しいスレッドを作成し、groupスレッドグループに属します.
Thread(ThreadGroup Group,Runnable target,String name):groupスレッドグループに属し、スレッド名がnameであるtargetのrunメソッドをスレッド実行体として新しいスレッドを作成します.
Thread(ThreadGroup,String name):新しいスレッドを作成します.新しいスレッド名はnameで、groupスレッドグループに属します.
4 ThreadクラスではsetThreadGroupのメソッドはスレッドが属するスレッドグループを変更するために提供されていませんが、getThreadGroup()メソッドはスレッドが属するスレッドグループを返すために提供され、getThreadGroup()メソッドの戻り値はスレッドグループを表すThreadGroupオブジェクトです.
5 ThreadGroupクラスには、インスタンスを作成するための2つの簡単なコンストラクタがあります.
ThreadGroup(String name):スレッドグループの名前を指定して新しいスレッドグループを作成します.
ThreadGroup(ThreadGroup parent,String name):指定した名前、指定した親スレッドグループで新しいスレッドグループを作成します.
二実戦
1コード
2運転
メインスレッドグループの名前:mainメインスレッドグループがバックグラウンドスレッドグループであるか:false tgスレッドグループがバックグラウンドスレッドグループであるか:trueメインスレッドグループのスレッドスレッドスレッドのi変数0 tgグループのスレッド甲スレッドのi変数0 tgグループのスレッド甲スレッドのi変数0 tgグループのスレッド甲スレッドのi変数1メインスレッドグループのスレッドスレッドのi変数1 tgグループのスレッド乙スレッドのi変数0 tgグループのスレッド乙スレッドのi変数0 tgグループのスレッド乙スレッドのi変数1 tgグループのスレッドBスレッドのi変数2主スレッド群のスレッドスレッドのi変数2 tg群のスレッド甲スレッドのi変数2
3説明
まず、プライマリ・スレッドが属するスレッド・グループを取得し、スレッド・グループの関連プロパティにアクセスし、新しいスレッド・グループを作成し、スレッド・グループをバックグラウンド・スレッド・グループに設定します.
Javaに関する詳細に興味のある方は、「Javaプロセスとスレッド操作テクニックの概要」、「Javaデータ構造とアルゴリズムチュートリアル」、「Java操作DOMノードテクニックの概要」、「Javaファイルとディレクトリ操作テクニックの概要」、「Javaキャッシュ操作テクニックの概要」を参照してください.
本文で述べたjavaプログラム設計に役立つことを願っています.
ほんの少し
1 JavaはThreadGroupを使用してスレッドグループを表し、一連のスレッドを分類管理することができ、Javaはプログラムが直接スレッドグループを制御することを許可する.
2あるスレッドが指定したスレッドグループに追加されると、スレッドはそのスレッドが死ぬまでスレッドグループに属し、スレッドの実行中にそのスレッドグループを変更することはできません.
3 Threadクラスでは、新しく作成したスレッドがどのスレッドグループに属するかを設定するコンストラクタがいくつか用意されています.
Thread(ThreadGroup Group,Runnable target):targetのrunメソッドをスレッド実行体として新しいスレッドを作成し、groupスレッドグループに属します.
Thread(ThreadGroup Group,Runnable target,String name):groupスレッドグループに属し、スレッド名がnameであるtargetのrunメソッドをスレッド実行体として新しいスレッドを作成します.
Thread(ThreadGroup,String name):新しいスレッドを作成します.新しいスレッド名はnameで、groupスレッドグループに属します.
4 ThreadクラスではsetThreadGroupのメソッドはスレッドが属するスレッドグループを変更するために提供されていませんが、getThreadGroup()メソッドはスレッドが属するスレッドグループを返すために提供され、getThreadGroup()メソッドの戻り値はスレッドグループを表すThreadGroupオブジェクトです.
5 ThreadGroupクラスには、インスタンスを作成するための2つの簡単なコンストラクタがあります.
ThreadGroup(String name):スレッドグループの名前を指定して新しいスレッドグループを作成します.
ThreadGroup(ThreadGroup parent,String name):指定した名前、指定した親スレッドグループで新しいスレッドグループを作成します.
二実戦
1コード
class MyThread extends Thread
{
//
public MyThread(String name)
{
super(name);
}
// 、
public MyThread(ThreadGroup group , String name)
{
super(group, name);
}
public void run()
{
for (int i = 0; i < 3 ; i++ )
{
System.out.println(getName() + " i " + i);
}
}
}
public class ThreadGroupTest
{
public static void main(String[] args)
{
// ,
ThreadGroup mainGroup = Thread.currentThread().getThreadGroup();
System.out.println(" :"
+ mainGroup.getName());
System.out.println(" :"
+ mainGroup.isDaemon());
new MyThread(" ").start();
ThreadGroup tg = new ThreadGroup(" ");
tg.setDaemon(true);
System.out.println("tg :"
+ tg.isDaemon());
MyThread tt = new MyThread(tg , "tg ");
tt.start();
new MyThread(tg , "tg ").start();
}
}
2運転
メインスレッドグループの名前:mainメインスレッドグループがバックグラウンドスレッドグループであるか:false tgスレッドグループがバックグラウンドスレッドグループであるか:trueメインスレッドグループのスレッドスレッドスレッドのi変数0 tgグループのスレッド甲スレッドのi変数0 tgグループのスレッド甲スレッドのi変数0 tgグループのスレッド甲スレッドのi変数1メインスレッドグループのスレッドスレッドのi変数1 tgグループのスレッド乙スレッドのi変数0 tgグループのスレッド乙スレッドのi変数0 tgグループのスレッド乙スレッドのi変数1 tgグループのスレッドBスレッドのi変数2主スレッド群のスレッドスレッドのi変数2 tg群のスレッド甲スレッドのi変数2
3説明
まず、プライマリ・スレッドが属するスレッド・グループを取得し、スレッド・グループの関連プロパティにアクセスし、新しいスレッド・グループを作成し、スレッド・グループをバックグラウンド・スレッド・グループに設定します.
Javaに関する詳細に興味のある方は、「Javaプロセスとスレッド操作テクニックの概要」、「Javaデータ構造とアルゴリズムチュートリアル」、「Java操作DOMノードテクニックの概要」、「Javaファイルとディレクトリ操作テクニックの概要」、「Javaキャッシュ操作テクニックの概要」を参照してください.
本文で述べたjavaプログラム設計に役立つことを願っています.