定时器(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!