Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务。
1,schedule(TimerTask task,Date time)的测试
该方法的作用是在指定的日期执行一次某一任务
如果按照如下的设置,表示任务在10秒钟之后执行;如果设置的时间早于当前的时间,则表示立即执行。
class MyTask1 extends TimerTask{
@Override
public void run() {
System.out.println("任务执行了,时间为" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
}
public class Test1 {
public static void main(String[] args) {
System.out.println("当前的时间为:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
Calendar calendar = Calendar.getInstance();
//任务的执行时间
calendar.add(Calendar.SECOND,10);
Date timeDate = calendar.getTime();
//创建的任务对象
MyTask1 myTask1 = new MyTask1();
Timer timer = new Timer();
timer.schedule(myTask1,timeDate);
}
}
2,schedule(TimerTask task,Date time,long period)的测试
该方法的作用是在指定的日期之后按照指定的间隔周期,无限循环执行某一任务
如果计划的开始时间早于当前的时间,则立即执行
class MyTask2 extends TimerTask{
@Override
public void run() {
System.out.println("任务执行了,时间为" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
}
public class Test2 {
public static void main(String[] args) {
System.out.println("当前的时间为:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
Calendar calendar = Calendar.getInstance();
//计划的开始时间是当前时间10秒钟以后
calendar.add(Calendar.SECOND,10);
Date timeDate = calendar.getTime();
System.out.println("计划时间为:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timeDate));
MyTask2 myTask2 = new MyTask2();
Timer timer = new Timer();
//表示每隔4秒钟执行一次
timer.schedule(myTask2,timeDate,4000);
}
}
3,schedule(TimerTask task,long delay)的测试
该方法的作用是以执行schedule(TimerTask task,long delay)方法当前时间为参考,在此时间的基础上延时指定的毫秒数后执行一次TimerTask任务。
class MyTask3 extends TimerTask {
@Override
public void run() {
System.out.println("任务执行了,时间为" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
}
public class Test3 {
public static void main(String[] args) {
System.out.println("当前的时间为:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
MyTask3 myTask3 = new MyTask3();
Timer timer = new Timer();
//表示每隔4秒钟执行一次
timer.schedule(myTask3,7000);
}
}
4,schedule(TimerTask task,long delay,long period)的测试
该方法的作用是以执行schedule(TimerTask task,long delay,long period)方法当前时间为参考,在此时间的基础上延时指定的毫秒数后执行一次TimerTask任务,再以某一间隔时间无限次数地执行某一任务。
class MyTask4 extends TimerTask {
@Override
public void run() {
System.out.println("任务执行了,时间为" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
}
public class Test4 {
public static void main(String[] args) {
System.out.println("当前的时间为:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
MyTask4 myTask4 = new MyTask4();
Timer timer = new Timer();
//表示每隔4秒钟执行一次
timer.schedule(myTask4,3000,5000);
}
}