Timer类
public class Timer extends Object,一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。
构造方法:
public Timer()创建一个新计时器。
主要方法:
public void cancel()终止此计时器,丢弃所有当前已安排的任务。
public void schedule(TimerTasktask,long delay)安排在指定延迟后执行指定的任务。task - 所要安排的任务。delay - 执行任务前的延迟时间,单位是毫秒。
public void schedule(TimerTasktask, Date time)安排在指定的时间执行指定的任务。如果此时间已过去,则安排立即执行该任务。time - 执行任务的时间。
public void schedule(TimerTasktask,long delay,long period) 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。period - 执行各后续任务之间的时间间隔,单位是毫秒。
public void schedule(TimerTasktask,Date firstTime,long period) 安排指定的任务在指定的时间开始进行重复的固定延迟执行。firstTime - 首次执行任务的时间。
TimerTask类
public abstractclass TimerTask extends Object implements Runnable。抽象类。由 Timer 安排为一次执行或重复执行的任务。
构造方法:
protected TimerTask()创建一个新的计时器任务。
主要方法:
public abstractvoid run()此计时器任务要执行的操作。子类需要重写run方法,run方法是该定时任务要执行的代码。
计时器代码示例:
package lianxi;
import java.util.Date;
import java.util.TimerTask;
public class MyTimerTaskextends TimerTask {
publicvoid run() {
System.out.println("该起床学习了");
System.out.println(newDate());
//输出执行该任务时的时间,以便确定该任务是否是在一秒钟延迟后执行的
}
}
package lianxi;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Lianxi14 {
publicstatic void main(String[] args) {
//创建定时器
Timert = new Timer();
//创建定时任务
TimerTasktask = new MyTimerTask();
//向定时器中传入定时任务
//t.schedule(task,new Date(118,4,19,19,06,10));
System.out.println(newDate());//输出当前时间,和执行定时任务的时间进行对比,确认是否是延迟一秒执行
//t.schedule(task,1000);
//t.schedule(task,new Date(118,4,19,19,19,00), 2000);//在指定时间开始执行任务,每隔两秒执行一次任务
//t.schedule(task,2000, 1000);//延迟两秒开始执行,每隔1秒执行一次任务
/*while(true){
try{
Thread.sleep(1000);//sleep是静态方法,在这里使用一秒一睡的方法输出打印当前日期,方便看出上面的定时任务是否在指定时间执行了
}catch (InterruptedException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(newDate());
}*/
}
}