定时器(Timer)
例1:写一个五秒后就输出一个结果,并打印出时间:
schedule(TimerTask task, Date time)
安排在指定的时间执行指定的任务。
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class ThreadTimerTest {
public static void main(String[] args) {
new Timer().schedule(new TimerTask() {
public void run() {
System.out.println("bombing!");
}
},5000);
while(true){
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行结果为:
7
8
9
10
11
bombing!
例2:第一次5秒后输出结果,以后每2秒输出结果,并打印出时间:
schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class ThreadTimerTest {
public static void main(String[] args) {
new Timer().schedule(new TimerTask() {
public void run() {
System.out.println("bombing!");
}
},5000,2000);
while(true){
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行结果为:
35
36
37
38
39
bombing!
40
41
bombing!
42
43bombing!
例3:每2秒打印一下:需要创建一个类来继承TimerTask()来实现
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class ThreadTimerTest {
public static void main(String[] args) {
/*
new Timer().schedule(new TimerTask() {
public void run() {
System.out.println("bombing!");
}
},5000,2000);
*/
class MyTimerTask extends TimerTask{
public void run() {
System.out.println("bombing!");
new Timer().schedule(new MyTimerTask(),2000);
}
}
new Timer().schedule(new MyTimerTask(),2000);
while(true){
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行结果为:
37
38
bombing!
39
40
bombing!
41
42bombing!