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 }
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();
定时器停止计时,并把任务列表清空。
浙公网安备 33010602011771号