/**
* <p>title: 线程控制</p>
* <p>description: 实现对线程的控制,中断、挂起、恢复、停止</p>
* <p>copyright: copyright (c) 2003</p>
* <p>filename: threadctrl.java</p>
* @version 1.0
*/
public class threadctrl{
public static void main(string [] main){
new threadctrl();
}
/**
*<br>方法说明:构造器,控制其它线程
*<br>输入参数:
*<br>返回类型:
*/
threadctrl(){
try{
thread tm = thread.currentthread();
threadchild td = new threadchild();
td.start();
tm.sleep(500);
system.out.println("interrupt child thread");
td.interrupt();
system.out.println("let child thread wait!");
//td.wait();
//td.suspend();
tm.sleep(1000);
system.out.println("let child thread working");
td.fauxresume();
//td.resume();
tm.sleep(1000);
td.runflag = false;
system.out.println("main over..............");
}catch(interruptedexception ie){
system.out.println("inter main::"+ie);
}catch(exception e){
system.out.println("main::"+e);
}
}
}
/**
*<br>类说明:被控线程类
*/
class threadchild extends thread {
boolean runflag = true;
boolean suspended = true;
threadchild(){
}
public synchronized void fauxresume(){
suspended = false;
notify();
}
public void run(){
while(runflag){
system.out.println("i am working..............");
try{
sleep(1000);
}catch(interruptedexception e){
system.out.println("sleep::"+e);
}
synchronized(this){
try{
if(suspended)
wait();
}catch(interruptedexception e){
system.out.println("wait::"+e);
}
}
}
system.out.println("thread over...........");
}
}
闽公网安备 35060202000074号