Demo20 :通过线程组管理多线程(通过构造器的参数实现不同的线程)
2018-04-05 08:24
288 查看
package demo20; /** * <p>Title: 线程组群</p> * <p>Description: 通过线程组管理下面的多个线程。</p> */ 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;i<3;i++) new thread1(dt.tgA,i*1000,"one"+i); for(int i=1;i<3;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); } } } /** * <p>Title: 线程类</p> * <p>Description: 通过构造器的参数,实现不同的线程</p> */ 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); } } } }
运行结果:
相关文章推荐
- 多线程 —— 线程组的概念,实现多个线程一起管理
- java——通过Callable接口实现可回调参数的多线程
- Java【多线程知识总结(4)】通过实现Runnable接口创建线程
- 从头认识java-18.2 基本的线程机制(6)-使用构造器或者内部类来实现多线程的编码变体
- 多线程(一)——通过实现Runnable接口创建线程
- C#多线程-不同线程之间通过事件委托封送调用方法
- 浅析Java中通过ThreadLocal实现线程绑定来传递参数
- 2.使用synchronized关键字实现多线程的同步和互斥(不同线程同时读写同一数据)
- Java 多线程实现的三种方法,附两个线程执行不同的输出
- 多线程实现的方式3:(开启不同的线程,分别进行求和)
- C#多线程-不同线程之间通过事件委托封送调用方法
- C#多线程-不同线程之间通过事件委托封送调用方法(转)
- java多线程学习之通过ThreadLocal实现每个线程拥有自己的变量
- 通过另类的泛型约束将两个输入输出参数不同的方法合并成一个方法的实现
- 多线程编程Demo[利用互斥对象实现线程间同步]
- 如果一个类通过继承Thread来实现多线程的话,则不适合多个线程共享资源,而通过实现Runnable就可以做到这一点
- Java多线程方面的编程笔试题(通过实现Runnable接口启动线程)
- 通过hidden隐藏域和URL参数(在一个处理页面实现不同的处理内容)
- 多线程学习--通过单例模式来实现多个线程中的数据共享
- Java的Socket通信----通过 Socket 实现 TCP 编程之多线程demo(2)