/* 定时调度:就是每隔一段时间,程序会自动执行。 * 如果要使用定时调度,则必须保证程序始终运行着才可以。 * 也就是相当于定时调度是在程序之外又启动了一个新的线程。 * * 要完成定时调度,需要Timer和TimerTask两个类 * Timer类是一种线程设施,可以用来实现在某一个时间或某一段时间后, * 安排某一个任务执行一次,或定期重复执行,但要与TimerTask配合使用。 * * TimerTask类用来实现由Timer安排的一次或重复执行的某一个任务。 * TimerTask类是一个抽象类,如果要使用该,则需要自己建立一个类 * 类继承此类,并实现其中的抽象方法(run()方法) * * 每一个Timer对象对应的是一个线程,因此计时器所执行的任务应该迅速 * 完成,否则可能或延迟后续任务的执行,而这些后续的任务就有可能堆在 * 一起,等到该任务完成后才能快速连续执行。 * * 任务调度一般用于web开发,因为要维护一个容器不关闭才可以一直定时操作下去 */
package edu.fjut.schedule; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimerTask; //完成具体的任务操作,所有任务调度类都要继承TimerTask public class MyTask extends TimerTask{ @Override public void run() { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); System.out.println("当前系统时间为:"+sdf.format(new Date()));//任务是打印当前系统的时间 } }
package edu.fjut.schedule; import java.util.Timer; //任务定时调度 public class TaskTest { public static void main(String []args){ Timer t=new Timer();//实例化Timer类对象 MyTask task=new MyTask();//定义任务 t.schedule(task,1000,2000);//设置任务的执行,1秒后开始,每隔2秒执行一次 } }