论坛首页 入门技术论坛

一个实现线程 暂停,继续,停止的抽象类

浏览 4249 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-11  
现在的JDK中 Thread 类的  stop(), resume(), suspend() 等方式是过时的了,那么如何在实现 线程的 停止,暂停,继续呢?下面是我写的一个代码,供大家参考。
欢迎交流!
package a;

public abstract class MyThread extends Thread{

private int flag=0;// 1 继续运行,2 暂停 ,3 停止
private Object o;

public MyThread(){
o=new Object();
}


abstract public void work(); //需要子类实现的方法,类似 run()

public void run(){
flag=1;
while(flag==1){
try{
    work();
}cahct(Exception e){//这样做可以让线程不会因为 work()的异常而停止
e.printStackTrace();
}
//可以加些sleep()等让线程自动放弃CPU资源
while(flag==2){
synchronized(o){
try{
o.wait();
}catch(Exception e){}

}
}
}
System.out.println("--stoped-------");
}

public void stop_t(){ //停止
flag=3;
}

public void pause(){
flag=2;
}


public void jixu(){
flag=1;
synchronized(o){
try{
o.notify();
}catch(Exception e){}
}
}
}
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics