java--定时调度

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

 

你可能感兴趣的:(schedule)