文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>java-多线程组的控制

java-多线程组的控制

时间:2010-07-26  来源:cj_gameboy

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[i]).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[i]).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.");
    }

}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载