Java入门——定时调度
Java入门——定时调度
Timer类
Timer类是一种线程设施,可以用来实现在某一个时间或者某一段时间后安排某一个任务执行一次或者定时重复执行,该功能要与TimeTask配合使用.
每一个Timer对象对应的是一个线程,因此计时器所执行的任务应该迅速完成,否者可能会延迟后续任务的执行。
序号 | 方法 | 类型 | 描述 |
1 | Timer() | 构造 | 创建一个计时器,并且启动这个计时器 |
2 | cancle() | 普通 | 终止该计时器,并放弃所有已经安排的任务 |
3 | purge() | 普通 | 将已经取消的任务移除,一般用来释放内存空间 |
4 | schedule(TimerTask task,Date time) | 普通 | 安排一个任务在指定的时间执行 |
5 | schedule(TimerTask task,Date firstTime,long period) | 普通 | 安排一个任务在指定的时间执行,然后以固定的频率重复执行 |
6 | schedule(TimerTask task,long delay,long period) | 普通 | 安排一个任务在一段时间后指定,并且以固定的频率重复执行 |
7 | scheduleAtFixedRate(TimerTask task,Date firstTime,long period) | 普通 | 安排一个任务在指定时间执行,然后以近似固定的频率重复执行 |
8 | scheduleAtFixedRate(TimerTask task,long delay,long period) | 普通 | 安排一个任务在一段时间后时间执行,然后以近似固定的频率重复执行 |
TimerTask类
是一个抽象类,需要建立子类实现其中的抽象方法。
序号 | 方法 | 类型 | 描述 |
1 | cancle() | 普通 | 用来终止此任务,如果该任务只执行一次并且还没有执行,则永远不会在执行,如果正在执行,则执行完后不会再执行,如果为重复执行任务,则之后不会再执行。 |
2 | run() | 普通 | 该任务所要执行的具体操作,该方法为引入的接口Runnable中的方法,子类需要继承此方法 |
3 | scheduled ExecutionTime() | 普通 | 返回最近一次要执行该任务的时间,一般在run()方法中调用,用来判断当前是否有足够的时间来执行该任务 |
范例
定时打印系统的当前时间。
/* * 总结,需要建立一个task对象,建立一个Timer对象 * task类继承与一个抽象类TimerTask,这个抽象类要实现run方法。 */ package Sep27; import java.util.*; import java.text.*; public class MyTask { public static void main(String[] args) { Timer t=new Timer(); TextTask testtask=new TextTask(); t.schedule(testtask, 1000, 2000); } } class TextTask extends TimerTask{ public void run(){ SimpleDateFormat sdf1=null; sdf1=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss.SSS"); System.out.println("当前时间为:"+sdf1.format(new Date())); } }
结果:
当前时间为:2016年09月27日 16:09:14.493 当前时间为:2016年09月27日 16:09:16.231 当前时间为:2016年09月27日 16:09:18.231 当前时间为:2016年09月27日 16:09:20.236 当前时间为:2016年09月27日 16:09:22.238 当前时间为:2016年09月27日 16:09:24.242 当前时间为:2016年09月27日 16:09:26.245 当前时间为:2016年09月27日 16:09:28.247