java Timer定时任务类用于处理java项目中的一些简单业务,TimerTask类主要用于封装需要执行的业务代码,而Timer类则负责执行TimerTask里面的业务,java.util.Timer类有如下几种常用方法,分别来解释,delay(延迟),period(一段时间)
1:schedule(TimerTask task, Date time)
---指定的时间执行指定的业务。
2:schedule(TimerTask task, Date firstTime, long period)
---从指定的开始时间开始每隔一段时间执行一次任务。
3:schedule(TimerTask task, long delay)
---延迟指定的时间后执行指定的任务。
4:schedule(TimerTask task, long delay, long period)
---延迟指定的时间后每隔一段时间执行一次任务。
5:scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
---从指定的开始时间每隔一段时间执行指定的任务,如果开始时间已经过去则会补回之前没有执行的时间段。
6:scheduleAtFixedRate(TimerTask task, long delay, long period)
---延迟指定的时间后每隔一段时间执行一次任务,和第4个没有区别。
下面来简单的介绍Timer定时器的简单用法,先来创建MyTimerTask类,此类继承TimerTask方法,在里面写入需要执行的业务,如下。
import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimerTask; public class MyTimerTask extends TimerTask { //继承TimerTask方法,重写run方法 @Override public void run() { //时间格式化 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("MyTimerTask正在运行..."+sdf.format(new Date())); } }
然后写一个TimerTest类来测试刚刚的定时方法,代码如下。
import java.util.Timer; public class TimeTest { public static void main(String[] args) { Timer timer = new Timer(); //延迟1秒执行,每隔2秒执行一次定时任务 timer.schedule(new MyTimerTask(), 1000, 2000); } }
schedule英文为时刻表,计划表,这里的意思就是调用我们的TimerTask定时任务,以上的输出结果如下。
MyTimerTask正在运行...2017-03-07 00:00:50 MyTimerTask正在运行...2017-03-07 00:00:52 MyTimerTask正在运行...2017-03-07 00:00:54