在靠近用户的地方部署容器
本工程教育(EngEd)计划由科支持。
在全球范围内即时部署容器。Section是经济实惠、简单而强大的。
免费入门。
在Java中实现定时器任务
11月3日, 2021
- 主题。
- 语言
Java编程语言提供了一个被称为Timer Task的类工具。它允许人们安排不同的任务。
换句话说,一个任务可以在一个给定的时间段后或在指定的日期和时间执行。
Java中的Timer ,是一个让线程为以后的执行安排任务的过程。
调度是通过在队列中保留一个特定的进程来完成的,这样当执行时间到来时,处理器可以暂停其他进程并运行该任务。
目录
前提条件
为了更好地理解这篇文章,你将需要。
- 对Java有一个基本的了解
- 拥有一个代码编辑器,如Intellij Idea。
Java 计时器任务方法
有三个Java定时器任务方法。
cancel()方法run()方法ScheduleExecutionTimer
Cancel()方法
这个方法取消了Java中的一个预定任务。它意味着在一个特定的时期内不会有任务被执行。
Run()方法
run() 方法负责运行预定任务。
ScheduleExecutionTime()方法
该方法返回内存中最新任务的计划执行时间。
代码示例
当你完成下载IntelliJ IDEA后,以管理员身份运行它,然后按照屏幕上的提示来完成设置。
安装完IDE后,启动它并点击New Project ,如下图所示。

选择java ,然后点击Next 。

勾选Create project from template ,然后点击Next 。

在下一个屏幕上,输入项目名称为TimerTask ,然后点击Finish 。我们就可以在下一个屏幕上写我们的代码了。环境应该是这样的。

让我们创建一个例子,安排一个任务,当日期为October 30th, 2021 at midnight ,显示信息Happy Birthday John Doe 。
package com.company;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) {
Timer T = new Timer();
TimerTask Birthday = new TimerTask(){
@Override
public void run(){
System.out.println("Happy Birthday John Doe");
}
};
Calendar date = Calendar.getInstance();
date.set(2021, Calendar.OCTOBER, 31, 0, 0, 0);
T.schedule(Birthday, date.getTime());
}
}
上述代码的输出将是。
Happy Birthday John Doe
在上面的代码中,我们正在导入Calendar ,Timer ,和TimerTask 实用程序。
Timer T = new Timer() 是一个记录时间的定时器的实例。 是由TimerTask执行的任务。Birthday
当时间到了,TimerTask 实例的run 函数被执行。
schedule 函数将任务与定时器联系起来。这个方法引用将被执行的任务。
在下面的例子中,我们将创建一个Calendar Date 的实例,并设置任务将被执行的YEAR,MONTH,DAY,HOUR,MINUTE, 和SECOND 。
我们还可以在项目中加入一个倒计时的计时器,这样我们的计时器就会在任务执行前开始计数。
这可以用if 语句和decrement 操作符来实现,如下图所示。
package com.company;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) {
Timer T = new Timer();
TimerTask Birthday = new TimerTask(){
int i = 5;
@Override
public void run(){
if(i>0){
System.out.println(i);
i--;
}
else{
System.out.println("Happy Birthday John Doe");
T.cancel();
}
}
};
Calendar date = Calendar.getInstance();
date.set(2021, Calendar.OCTOBER, 30,23, 59, 54);
T.scheduleAtFixedRate(Birthday, date.getTime(), 1000);
}
}
现在代码的输出如下所示。
55
56
57
58
59
Happy Birthday John Doe
为了使计数器以1秒的速度计数,我们使用T.scheduleAtFixedRate (Birthday, date.getTime(), 1000); ,而不是T.schedule(Birthday, date.getTime()); 。1000 milliseconds 代表计数周期。
变量i 被初始化为5 。这意味着任务将在5秒后执行。
时间OCTOBER, 30,23, 59, 54 ,表示计数器将在10月30日23:59时,在第54秒开始。
cancel() 方法用于取消任务的执行,以防止任务完成后再次被执行。
总结
本教程带你了解了Java中定时器任务的概念。
因此,你应该对定时器任务有一个更好的理解,并能将其纳入你的项目中。
同行评审的贡献者。Jethro Magaji
类似文章
[

语言
如何创建一个可重复使用的React表单组件
阅读更多

语言, Node.js
用Next.js构建一个薪资系统
阅读更多

架构
在Django中创建和使用装饰器
更多信息