62,614
社区成员
发帖
与我相关
我的任务
分享
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Watcher w = new Watcher();
w.setDaemon(true); //设置监视线程为后台线程
w.start(); //启动监视线程
}
}
class Watcher extends Thread{ //监视类
boolean status = true; //控制监视线程运行的变量
void setStatus(boolean status){ //设置监视线程的运行与否
this.status = status;
}
public void run(){
Worker w = new Worker();
w.start(); //启动被监视的线程
while(status){
if(!w.isAlive()){ //判断被监视的线程是否停止运行
w = new Worker(); //新建一个被监视类的对象
w.start(); //启动被监视的线程
}
try {
w.sleep(1000); //间隔1秒检测被监视线程的运行状态
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class Worker extends Thread{ //被监视的类
public void run(){
//some codes
}
}
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Watcher w = new Watcher();
w.setDaemon(true); //设置监视线程为后台线程
w.start(); //启动监视线程
}
}
class Watcher extends Thread{ //监视类
boolean status = true; //控制监视线程运行的变量
void setStatus(boolean status){ //设置监视线程的运行与否
this.status = status;
}
public void run(){
Worker w = new Worker();
w.start(); //启动被监视的线程
while(status){
if(!w.isAlive()){ //判断被监视的线程是否停止运行
w = new Worker(); //新建一个被监视类的对象
w.start(); //启动被监视的线程
}
try {
w.sleep(1000); //间隔1秒检测被监视线程的运行状态
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}