/**
* pTitle: 线程组群/p
* pDescription: 通过线程组管理下面的多个线程。/p
* pCopyright: Copyright (c) 2003/p
* pFilename: myThreadgroup.java/p
* @version 1.0
*/
public class myThreadgroup extends Thread {
public static int flag=1;
ThreadGroup tgA;
ThreadGroup tgB;
/**
*br方法说明:主方法
*br输入参数:
*br返回类型:
*/
public static void main(String[] args){
myThreadgroup dt = new myThreadgroup();
//声明线程组A
dt.tgA = new ThreadGroup("A");
//声明线程组B
dt.tgB = new ThreadGroup("B");
for(int i=1;i3;i++)
new thread1(dt.tgA,i*1000,"one"+i);
for(int i=1;i3;i++)
new thread1(dt.tgB,1000,"two"+i);
//启动本线程和所有线程组
dt.start();
}
/**
*br方法说明:覆盖run方法,控制线程组
*br输入参数:
*br返回类型:
*/
public void run(){
try{
this.sleep(5000);
this.tgB.checkAccess();
//停止线程组B,
this.tgB.stop();
System.out.println("**************tgB stop!***********************");
this.sleep(1000);
//检查线程组A是否可以更改
this.tgA.checkAccess();
//停止线程组A
this.tgA.stop();
System.out.println("**************tgA stop!***********************");
}catch(SecurityException es){
System.out.println("**"+es);
}catch(Exception e){
System.out.println("::"+e);
}
}
}
/**
* pTitle: 线程类/p
* pDescription: 通过构造器的参数,实现不同的线程/p
* pCopyright: Copyright (c) 2003/p
* pFilename: thread1.java/p
* @author 杜江
* @version 1.0
*/
class thread1 extends Thread {
int pauseTime;
String name;
public thread1(ThreadGroup g,int x, String n) {
super(g,n);
pauseTime = x;
name = n;
start();
}
/**
*br方法说明:必须覆盖的方法。
*br输入参数:
*br返回类型:
*/
public void run ()
{
while(true) {
try {
System.out.print(name+"::::");
this.getThreadGroup().list();//获取线程组信息
Thread.sleep(pauseTime);
} catch(Exception e) {
System.out.println(e);
}
}
}
}
[JAVA100例]063、线程群组
图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享[JAVA100例]063、线程群组的教程,热爱PS的朋友们快点看过来吧!