Java:Timer定时器的基本用法

Timer的四种执行任务的方式

schedule(TimerTask task, Date time)

定时器仅在未来的某个时间点执行一次任务。

 1 import java.text.ParseException;
 2 import java.text.SimpleDateFormat;
 3 import java.util.Date;
 4 import java.util.Timer;
 5 import java.util.TimerTask;
 6 
 7 public class Test {
 8     public static void main(String[] args) {
 9         // 定义定时器并启动
10         Timer timer = new Timer(true);
11 
12         // 定义任务
13         TimerTask task1 = new TimerTask() {
14             @Override
15             public void run() {
16                 System.out.println("Hello World!");
17             }
18         };
19 
20         try {
21             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
22             String dateStr = "2022-02-17 00:00:00";
23             Date time = format.parse(dateStr);
24 
25             // 往定时器中添加任务
26             timer.schedule(task1, time);
27         } catch (ParseException e) {
28             e.printStackTrace();
29         }
30     }
31 }
View Code

 

schedule(TimerTask task, Date firstTime, long peroid)

定时器在未来的某个时间点执行第一次任务,然后每隔一段时间都执行一次任务。

peroid参数是间隔时间,单位为毫秒。

 

schedule(TimerTask task, long delay)

定时器从此方法执行时算起,仅在一定时间后执行一次任务。

delay参数是延后时间,单位为毫秒。

 

schedule(TimerTask task, long delay, long peroid)

定时器从此方法执行时算起,在一定时间后执行第一次任务,然后每隔一段时间都执行一次任务。

 

立刻执行任务的情况

如果定时器计划了在某个时间点执行任务,但是系统当前时间已经超过那个时间点了,则该任务会立刻执行。

 

关于取消任务

task.cancel();

任务取消,仍存在于任务列表,且不影响其它任务。

 

task.run();

如果定时器未终止,且任务只是取消了并未从任务列表中移除,那么该任务还可以重新执行。

 

timer.purge();

定时器把已经取消的任务从任务列表中移除,方法返回移除的任务数量。

 

timer.cancel();

定时器停止计时,并把任务列表清空。

 

posted @ 2022-02-17 00:02  RexChou  阅读(612)  评论(0)    收藏  举报