Time类主要负责完成定时计划任务的功能,就是在指定的时间的开始执行某个任务.
Timer类的作用是设置计划任务,而封装任务内容的类是TimerTask类.此类是一个抽象类,继承需要实现一个run方法.
通过查文档我们看到Timer有以下几个构造函数:
Timer的方法以下这么多:
下面实现几种方式:
import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class testTimer { public static void main(String[] args) { //task1(); //task2(); task3(); } public static void task1(){ Timer timer = new Timer(); timer.schedule(new TimerTask(){ public void run(){ System.out.println("每2秒输出一次"); } }, 2000); } //执行时间按照上一次实际执行完成的时间点进行计算 public static void task2(){ Timer timer = new Timer(); timer.schedule(new TimerTask(){ public void run(){ System.out.println("延迟一秒后,每5秒输出一次"); } }, 1000, 2000); } //执行时间按照上一次开始的时间点进行计算 public static void task3(){ Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask(){ public void run(){ System.out.println("延迟一秒后,每2秒输出一次"); } }, 1000, 2000); } public static void task4(){ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制时 calendar.set(Calendar.MINUTE, 0); // 控制分 calendar.set(Calendar.SECOND, 0); // 控制秒 Date time = calendar.getTime(); // 得出执行任务的时间,此处为今天的12:00:00 Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask(){ public void run(){ System.out.println("执行指令"); } }, time, 1000 * 60 * 60 * 24); } }