import java.util.TimerTask;
/**
*注:TimerTask 实现的是runnable 接口
*Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。
*TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
*每一个Timer仅对应唯一一个线程。
*Timer不保证任务执行的十分精确。
*Timer类的线程安全的。
*
*schedule(TimerTask task, long delay, long period)
*schedule(TimerTask task, Date time, long period)
*scheduleAtFixedRate(TimerTask task, long delay, long period)
*scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
*/
public class Time extends TimerTask {
public void run() {
//这里需要定时执行的代码
System.out.println("执行的是TimerTask 定时器");
}
}
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
*
* 编写监听器
*
*/
public class Listener implements ServletContextListener {
private Timer timer=null;
//web容器终止 加载contextDestroyed 方法
@Override
public void contextDestroyed(ServletContextEvent sce) {
//终止timer
timer.cancel();
}
//web容器启动时初始化contextInitialized 方法
public void contextInitialized(ServletContextEvent sce) {
//创建timer
timer=new Timer();
/*
* 第一个参数:TimerTask对象
* 第二个参数:开始执行第一个run方法时候延长的时间
* 第三个参数 每隔多少时间执行一次
*/
timer.schedule(new Time(), 1000, 3000L);
System.out.println("来到了这里。。。。。。。");
}
}
<!-- web.xml 配置监听器 -->
<listener>
<listener-class>Listener</listener-class>
</listener>
<servlet>
TimerTask 定时器
最新推荐文章于 2022-09-09 19:07:45 发布