🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
java.util包下提供了对定时任务的支持,涉及2个类:
- Timer:定时器类
- TimerTask:任务抽象类
使用该定时任务我们需要继承TimerTask抽象类,覆盖run方法编写任务执行代码,并利用Timer定时器对TimerTask进行调度。
编写一个任务:
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println(DateUtil.formatNow() + " " + Thread.currentThread().getName() + " task run ");
}
};
接着使用Timer对TimerTask进行调度,Timer提供了多种方法,可分为一次性任务和可重复执行任务。
一、一次性任务
一次性任务是指Timer执行一次之后,该任务后续不再执行。
一次性任务包括2个方法,如下:
- void schedule(TimerTask task, long delay):延迟delay毫秒后执行一次task
- void schedule(TimerTask task, Date time):在指定时间time执行一次task,如果time过期,将会立即执行
二、可重复执行任务
可重复执行任务是指,任务允许按照设定的规则重复执行。
可重复执行任务共有4个方法,分为 固定延时 schedule和固定速率 scheduleAtFixedRate:
- void schedule(TimerTask task, long delay, long period):延迟delay毫秒后执行task,之后每隔period毫秒执行一次task
- void schedule(TimerTask task, Date firstTime, long period):在指定时间time执行一次task,之后每隔period毫秒执行一次task
- void scheduleAtFixedRate(TimerTask task, long delay, long period):延迟delay毫秒后执行task,之后每隔period毫秒执行一次task
- void scheduleAtFixedRate(TimerTask task, Date firstTime, long period):在指定时间time执行一次task,之后每隔period毫秒执行一次task
示例1:schedule方法,延迟delay毫秒后执行task,之后每隔period毫秒执行一次task
System.out.println("启动于:" + DateUtil.formatNow());
Timer timer = new Timer("timer");
timer.schedule(task, 1000, 2000);
输