Timer
1. 定时器概述
- 定时器,可以设置线程在某个时间执行某件事情,或者某个时间开始,每间隔指定的时间反复地做某件事情;
2. Timer 类
- Timer 类可以实现线程调度任务以供将来在后台线程中执行的功能,任务可以安排一次执行,或者定期重复执行;
- java.util.Timer,详见:Class Timer;
3. 构造方法
4. 成员方法
返回值 |
方法名 |
说明 |
void |
schedule(TimerTask task, long delay) |
在指定的延迟之后安排指定的任务执行 |
void |
schedule(TimerTask task, long delay, long period) |
在指定的延迟之后开始,重新执行固定延迟执行的指定任务 |
void |
schedule(TimerTask task, Date time) |
在指定的时间安排指定的任务执行 |
void |
schedule(TimerTask task, Date firstTime, long period) |
从指定的时间开始,对指定的任务执行重复的固定延迟执行 |
5. Java 实例
import java.text.SimpleDateFormat;
import java.util.*;
public class Test {
public static void main(String[] args) {
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
for (int i = 10; i >= 0; i--) {
System.out.println("倒数:" + i);
try {
Thread.sleep(1000);
} catch (Exception e) {
}
}
System.out.println("嘭......嘭......");
t.cancel();
}
}, 2000);
Timer t2 = new Timer();
t2.schedule(new TimerTask() {
@Override
public void run() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date()));
}
}, 5000, 1000);
Timer t3 = new Timer();
Calendar c = new GregorianCalendar(2030, 1 - 1, 1, 0, 0, 0);
Date d = c.getTime();
t3.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("搜索全盘......");
}
}, d, 1000 * 3600 * 24);
}
}