首页 > 编程知识 正文

java如何实现定时任务(JAVA实现定时任务)

时间:2023-05-03 15:05:33 阅读:2055 作者:1247

如果你想执行一些简单的计时器任务,而不需要复杂的控制或保存状态,你可以考虑使用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。

.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。