〖JAVE经验〗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[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.”);

}

}

更多免费相关学习经验请访问:Tore_m_1206686_21115_1_1.html”>http://www.shangxueba.com/sTore_m_1206686_21115_1_1.html

在乎的是看风景的心情,旅行不会因为美丽的风景终止。

〖JAVE经验〗Java认证:关于多线程组的控制

相关文章:

你感兴趣的文章:

标签云: