站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题关于线程自动销毁的问题

关于线程自动销毁的问题

摘要: 关于线程自动销毁的问题


线程超时自动销毁 请问我应该怎么做



package ceshiiswenjian;

import javax.servlet.*;
import java.util.*;
import java.util.Date;
import java.io.*;

public class ISFile implements ServletContextListener {
private java.util.Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
//定时器已启动
timer.schedule(new TiTask(), 0, (long) 1000*60);//定时2分钟
//已经添加任务调度表
}
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
//定时器销毁
}
}
class TiTask extends TimerTask {
private static boolean isRunning = false;
public void run() {
if (!isRunning) {
isRunning = true;
//开始执行任务
//ToDo ....
//执行任务完成
System.out.println("start duishu:"+new Date());
Thread threadDaoShu=new Thread(new TShu());
threadDaoShu.start();

isRunning = false;
} else {
//上一次任务执行还未结束
System.out.println("err");
//isRunning = false;
}
}
}
class TShu implements Runnable{

/**
* @param ii
*/

public TShu() {

// TODO Auto-generated constructor stub
}

public void run(){
try {



System.out.println("作业");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("cuowu:"+e);
}

}
}




在定时器中调用线程对象的 interrupt()

(可能还需要线程对象中做适当的配合,比如,发现被 interrupt 后从 run() 中退出)


↑返回目录
前一篇: 我搞不明白JAVA编译代码时遇到的错误提示
后一篇: 关于数组中重复元素相加