定时器
定时器是一个应用十分广泛的线程工具,可用于调度多个定时任务以后台线程的方式执行。在Java中,可以通过Timer和TimerTask类来实现定义调度的功能
Timer
public Timer()
public voidschedule(TimerTask task, long delay)
public voidschedule(TimerTask task,long delay,long period)
TimerTask
public abstractvoid run()
public booleancancel()
开发中
Quartz是一个完全由java编写的开源调度框架。
例子1:定时
import java.util.Timer;
import java.util.TimerTask;
/*
* 定时器:可以让我们在指定的时间做某件事情,还可以重复的做某件事情。
* 依赖Timer和TimerTask这两个类:
*Timer:定时
* public Timer()
* public void schedule(TimerTasktask,long delay)
* public void schedule(TimerTasktask,long delay,long period)
* public void cancel()
*TimerTask:任务
*/
public class TimerDemo {
publicstatic void main(String[] args) {
//创建定时器对象
Timert = new Timer();
//3秒后执行爆炸任务
//t.schedule(new MyTask(), 3000);
//结束任务
t.schedule(newMyTask(t), 3000);
}
}
// 做一个任务
class MyTask extends TimerTask {
privateTimer t;
publicMyTask(){}
publicMyTask(Timer t){
this.t= t;
}
@Override
publicvoid run() {
System.out.println("beng,爆炸了");
t.cancel();
}
}
例子2:定时循环
import java.util.Timer;
import java.util.TimerTask;
/*
* 定时器:可以让我们在指定的时间做某件事情,还可以重复的做某件事情。
* 依赖Timer和TimerTask这两个类:
*Timer:定时
* public Timer()
* public void schedule(TimerTasktask,long delay)
* public void schedule(TimerTasktask,long delay,long period)
* public void cancel()
*TimerTask:任务
*/
public class TimerDemo2 {
publicstatic void main(String[] args) {
//创建定时器对象
Timer t = new Timer();
//3秒后执行爆炸任务第一次,如果不成功,每隔2秒再继续炸
t.schedule(newMyTask2(), 3000, 2000);
}
}
// 做一个任务
class MyTask2 extends TimerTask {
@Override
publicvoid run() {
System.out.println("beng,爆炸了");
}
}