如果你想执行一些简单的计时器任务,而不需要复杂的控制或保存状态,你可以考虑使用JDK的入门级计时器来执行重复的任务。
一.原则
在JDK,定时器任务的执行需要两个基本类:
Java . util . timer;
Java . util . timertask;
要运行计划任务,最基本的步骤如下:
1.设置要执行的任务时间任务。
2.创建Timer的实例,通过Timer提供的schedule()方法将TimerTask添加到Timer Timer中,同时设置执行规则。
当程序执行定时器初始化代码时,将根据设置执行定时器计时任务。
Timer中的schedule()方法有多种重载格式来适应不同的情况。此方法的格式如下:
无效计划(时间任务,日期时间)
计划在指定的时间执行指定的任务。
无效计划(时间任务,日期优先时间,长周期)
计划任务在指定时间开始以固定延迟重复执行。
无效计划(时间任务,长时间延迟)
将指定的任务安排在指定的延迟后执行。
无效计划(时间任务、长延迟、长周期)
在指定的延迟后,以固定的延迟重复执行计划的任务。
Timer是线程安全的,这个类可以扩展到大量同时调度的任务(有几千个没有任何问题)。它的所有构造函数都启动计时器线程。您可以调用cancel()来终止此计时器并放弃所有当前计划的任务。Purge()从此计时器的任务队列中删除所有已取消的任务。这个类不提供实时保证:它使用Object.wait(long)方法来调度任务。
TimerTask是一个抽象类,它被Timer安排为一个要执行一次或重复执行的任务。它有一个抽象的方法run()-由计时器任务执行的操作。因此,每个具体的任务类都必须继承TimerTask类并重写run()方法。此外,它还有两种非抽象方法:
布尔取消()
取消此计时器任务。
长计划执行持续时间()
返回此任务最近实际执行的计划执行时间。
二.例子
下面是计时器的一个简单示例:
包stu.timer
导入Java . util . date;
导入Java . util . timertask;
/**
*重复的任务
*
* @作者雷志民,2008-10-9 9:20:20
*/
公共类TestTimerTask扩展了TimerTask {
/**
*此计时器任务要执行的操作。
*/
public void run(){ 0
日期执行时间=新日期(this . scheduledeexecutiontime());
System.out.println('此任务的执行时间为' execute time ');
}
}
包stu.timer
导入Java . util . timer;
导入Java . util . timertask;
/**
*测试JDK计时器的执行情况
*
* @作者雷志民,2008-10-9 9:24:35
*/
公共类TestTimer {
公共静态void main(String[]args){ 0
定时器定时器=新定时器();
TimerTask任务=new Testtimertask();
timer.schedule(任务,500升,1000升);
}
}
运行结果:
本任务执行时间为2008年10月09日09:09:47336057 CST。
本任务执行时间为2008年10月09日09:09:47336058 CST。
本任务执行时间为2008年10月09日09:09:47336059 CST。
本任务执行时间为2008年10月09日09:09:48336000 CST。
本任务执行时间为2008年10月09日09:09:48336001 CST。
本任务执行时间为2008年10月09日09:09:48336002 CST。
本任务执行时间为2008年10月09日09:09:48336003 CST。
本任务执行时间为2008年10月09日09:09:48336004 CST。
本任务执行时间为2008年10月09日09:09:48336005 CST。
.