最新帖子 精华区 社区服务 会员列表 统计排行
主题 : Java-多线程组的控制
ceshi123 离线
级别: 管理员
宣传大使奖 特殊贡献奖 灌水天才奖
显示用户信息 
0  发表于: 2010-08-02 20:04

Java-多线程组的控制

购买流程:注册论坛账号------->在线充值购买论坛交易币------->下载毕业设计将直接扣除交易币
  class NewThread extends Thread{

  boolean suspendFlag;

  NewThread(String threadname, ThreadGroup tgOb){

  super(tgOb, threadname);

  System.out.println("New thread: "+this);

  suspendFlag = false;

  start();

  }

  public void run(){

  try{

  for(int i=5;i>0;i--){

  System.out.println(getName()+": "+i);

  Thread.sleep(1000);

  synchronized(this){

  while(suspendFlag){

  wait();

  }

  }

  }

  }catch(Exception e){

  System.out.println("Exception in "+getName());

  }

  System.out.println(getName()+"exiting.");

  }

  void mysuspend(){

  suspendFlag = true;

  }

  synchronized void myresume(){

  suspendFlag = false;

  notify();

  }

  }

  public class test {

  public static void main(String[] args) {

  // TODO Auto-generated method stub

  ThreadGroup groupA = new ThreadGroup("Group A");

  ThreadGroup groupB = new ThreadGroup("Group B");

  NewThread ob1 = new NewThread("one", groupA);

  NewThread ob2 = new NewThread("Tow", groupA);

  NewThread ob3 = new NewThread("three", groupB);

  NewThread ob4 = new NewThread("Four", groupB);

  System.out.println("Suspending Group A");

  Thread tga[] = new Thread[groupA.activeCount()];

  groupA.enumerate(tga);

  for(int i=0;i<tga.length;i++){

  ((NewThread)tga).mysuspend();

  }

  try {

  Thread.sleep(4000);

  }catch(InterruptedException e){

  System.out.println("Main thread interrupted.");

  }

  System.out.println("Resuming Group A");

  for(int i=0;i<tga.length;i++){

  ((NewThread)tga).myresume();

  }

  try {

  System.out.println("Waiting for threads to finish.");

  ob1.join();

  ob2.join();

  ob3.join();

  ob4.join();

  }catch (Exception e){

  System.out.println("Exception in Main thread");

  }

  System.out.println("Main thread exiting.");

  }

  }

快速回复 顶端
内容
HTML 代码不可用
使用签名
Wind Code自动转换

验证问题:本站域名是什么?答案:cccbbs.net  正确答案:cccbbs.net
按"Ctrl+Enter"直接提交