Java定时调度教程
在生产的编程场景中,我们需要定期的执行一个方法。我们可以人为的触发这个方法,也可以用定时调度器,定期的调用这个方法。
Timer 类就是一种线程设施,可以在一个时间或者某一时间段执行一次或者重复执行该方法。该功能需要与 TimerTask 配合使用。
Java TimeTask类
TimeTask 是一个抽象类,它会结合定时调度类,如果想要用该类,就需要定义一个子类来实现里面的抽象方法。常用的抽象方法有:
方法名称
描述
public void cancel()
用来终止此次任务,如果一个任务只执行一次,还没有执行则永远不会再执行,如果是重复任务,当前任务执行完后就不会执行
public void run()
执行的任务的具体操作内容,实现了 Runable 里面的run 方法,子类需要覆盖该方法
public long scheduled ExecutionTime()
返回最近一次要执行的任务的时间,用来判断当前是否有足够的时间来执行完成该任务
Java Timer类
Timer 类创建的对象,每次多会创建一个线程,用新的线程来执行需要执行的任务。它不会和当前执行的线程一起执行,所以执行的任务会迅速完成。常用的方法有:
名称
描述
public Timer()
用来创建一个计时器并启动该计时器,是构造方法
public void cancel()
用来终止该计时器,并放弃所有已经安排的任务,当前正在执行的任务会继续执行
public int purge()
将所有已经取消的任务移除
public void schedule(TimeTask task,Date time)
指定一个任务的执行时间,如果指定时间在当前时间之前,就会立即执行
public void schedule(TimeTask task,Date firstTime,long period)
安排一个任务在指定的时间开始执行,然后按照固定的频率执行
public void schedule(TimeTask task,long delay)
安排一个任务在一段时间后执行
public void schedule(TimeTask task,long delay, long period)
安排一个任务在 delay 毫秒后执行,并且等 period 毫秒后继续执行
public void scheduleAtFixedRate(TimeTask task,Date firstTime,long period)
指定一个任务在指定的时间执行,和 schedule(TimeTask task,Date firstTime,long period) 类似,只不过可以根据出现的延时时间进行自动调整
public void schedule(TimeTask task,long delay,long period)
指定一个任务在一段时间后执行,和 schedule(TimeTask task,long delay, long period) 类似,只不过可以根据出现的延时时间进行自动调整。
案例
我们定义一个 TimerTask子类
package com.haicoder.net.task;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;
public class MyTimerTask extends TimerTask{
@Override
public void run(){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SSS”);
System.out.println(“当前系统时间是 : ” + simpleDateFormat.format(new Date()));
}
}
定义一个测试类
package com.haicoder.net.task;
import java.util.Timer;
public class TaskTest{
public static void main(String[] args){
System.out.println(“嗨客网(www.haicoder.net)”);
Timer timer = new Timer();
timer.schedule(new MyTimerTask(), 100,1000); //任务在当前时间的 100 mm 后每 1000 mm 执行一次
}
}
运行结果如下:
我们在案例中用到了时间格式化类
Java定时调度总结
要使用任务调度功能,需要将 TimeTask 和 Timer 联合使用,TimeTask 里面的 run 方法将具体要做的任务自己实现,然后作为参数传递给 Timer,调用指定的方法,就可以按照对应的方式进行重复或者指定的时间执行任务。
今天的文章java 100个定时任务_java定时任务-java TimeTask-java timer-嗨客网「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/86093.html