有的时候我们需要每隔一段时间去执行某个任务,在Java中提供了Timer
and
TimerTask来完成这个任务,本文提供一个应用程序的源代码告诉你如何使用这两个类,这两个类在包:java.util包里面
TimerTask类是个抽象类,它扩展了Object类并实现了Runnable接口,因此可以说TimerTask是一个线程,我们所要做的工作就是实现run方法,把自己打算要做的事放在run()方法里面。而Task类是用来控制执行TimerTask的,它提供的主要方法是重载的schedule()方法,我们这里将使用schedule(TimerTask
task,long time,long internal)方法来说明如何使用它。
首先,我们定义一个TimerTask类,
public class MyTimerTask extends TimerTask
{
private
Logger log=LogFactory.getLog(MyTimerTask.class);
private
MyTimerTask
instance;//单例模式,所有应用公用一个MyTimerTask实例
public
synchronized static MyTimerTask getInstance()
{
if(instance==null)
{
instance=new MyTimerTask();
}
return instance;
}
private
MyTimerTask()//私有构造函数
{
}
public
void run()
{
log.info("启动任务开始:");
yourTask();//这里你可以定义你的任务
}
}
然后再定义一个Timer类,
Timer aTimer=new Timer();
aTimer.schedule(MyTimerTask.getInstance(),执行任务前的延迟时间,执行各后续任务之间的时间间隔);
Timer类一般与监听器配合使用。用Timer类的cancle()方法来终止任务。