/* 定时调度:就是每隔一段时间,程序会自动执行。
* 如果要使用定时调度,则必须保证程序始终运行着才可以。
* 也就是相当于定时调度是在程序之外又启动了一个新的线程。
*
* 要完成定时调度,需要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秒执行一次
}
}