java定时打印,自己写的,望大师指教
import java.util.Timer; import java.util.TimerTask; public class TimerUtil2 { public static void main(String[] args) { Timer t=doSeconds(); System.out.println(t); System.out.println("main:"+Thread.currentThread().getName()); //运行线程和 TimerTask不是同一线程,可停止 // t.cancel(); // System.out.println(0%20==0); // System.out.println(1%20==0); } public static Timer doSeconds() { final Timer timer = new Timer(); // schedule() 这个方法有三个参数,第一个参数是要运行的代码,第二个参数是从什么时候开始运行,第三个参数是每隔多久在运行一次。 timer.schedule(new TimerTask() { int a=1; int maxSec=5; @Override public void run() { // Date dd = new Date(); // System.out.println(dd); if (a>maxSec) { System.out.println("run:"+Thread.currentThread().getName()); System.out.println("大于最大设定秒数,计时结束"); timer.cancel(); return; } if (a%20==0) { System.out.println(a); }else { System.out.print(a+" "); } a++; } },1000,1000); return timer; } }
Timer类的方法
schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。
schedule(TimerTask task, long delay, long period)
安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
schedule(TimerTask task, Date time)
安排在指定的时间执行指定的任务。
schedule(TimerTask task, long delay)
安排在指定延迟后执行指定的任务。
scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定速率执行。
区别详见文档
---------------------------------------------------------
每天指定时刻任务
可参考:http://www.open-open.com/lib/view/open1338175095183.html
这个例子有点不完善,应在listener的destory中终止timer
public class TimerManager { //时间间隔 private static final long PERIOD_DAY = 24 * 60 * 60 * 1000; public TimerManager() { Calendar calendar = Calendar.getInstance(); /*** 定制每日2:00执行方法 ***/ calendar.set(Calendar.HOUR_OF_DAY, 2); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date date=calendar.getTime(); //第一次执行定时任务的时间 //如果第一次执行定时任务的时间 小于 当前的时间 //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。 if (date.before(new Date())) { date = this.addDay(date, 1); } Timer timer = new Timer(); NFDFlightDataTimerTask task = new NFDFlightDataTimerTask(); //安排指定的任务在指定的时间开始进行重复的固定延迟执行。 timer.schedule(task,date,PERIOD_DAY); } // 增加或减少天数 public Date addDay(Date date, int num) { Calendar startDT = Calendar.getInstance(); startDT.setTime(date); startDT.add(Calendar.DAY_OF_MONTH, num); return startDT.getTime(); } }在 TimerManager 这个类里面,大家一定要注意 时间点的问题。如果你设定在凌晨2点执行任务。但你是在2点以后
相关推荐
### JAVA定时运行程序知识点解析 #### 一、概述 在Java编程中,实现定时任务是一项常见且实用的功能。本文将详细介绍如何使用`java.util.Timer`类来创建一个能够定时执行特定任务的应用程序。通过分析提供的代码...
### Java定时执行任务详解 #### 一、Java定时任务实现方式概述 在Java中实现定时任务的方法有很多,这里主要介绍一种常见的实现方式:利用`java.util.Timer`类来完成定时任务的调度。`Timer`类提供了多种方法来...
通过以上步骤,我们就完成了一个简单的Java定时提醒器。这个程序可以集成到更大的项目中,或者作为独立的小工具使用。在实际开发中,还可以考虑使用更高级的定时框架如Quartz,提供更复杂的定时策略和更好的线程管理...
### Java线程定时启动知识点详解 #### 一、概述 在Java编程中,有时我们需要让某个任务或操作在特定的时间点或每隔一段时间自动执行一次。这通常被称为“定时任务”。Java标准库提供了几种不同的方式来实现定时...
Java Timer 定时每天凌晨1点执行任务 在Java中,Timer类是一个非常有用的工具类,它可以帮助我们实现定时任务的执行。在本篇文章中,我们将学习如何使用Java Timer来实现每天凌晨1点执行任务的功能。 首先,让我们...
// 在这里编写需要定时执行的代码 } } public class TimerManager { Timer timer = new Timer(); public void scheduleTask(MyTimerTask task, long delay, long period) { timer.schedule(task, delay, ...
在IT领域,计划任务和定时执行是至关重要的概念,它们被广泛应用于自动化流程、数据同步、备份策略以及各种定期维护任务。在这个例子中,我们关注的是如何设置计划任务来定时执行代码,比如定时上传文件或其他操作。...
- **属性**:包括定时执行时间`TIME`(默认为4秒),以及`Timer`对象`timer`。 - **方法**: - `startTimer(TimerTask timerTask)`: 启动定时任务,每`TIME`毫秒执行一次。 - `startAtFixedTimer(TimerTask ...
总结起来,Log4j的定时打印日志功能结合模块名的配置,可以帮助开发者更好地管理和理解Java应用的运行状态。通过合理的配置和使用,可以提高问题定位的效率,同时为系统的健康运行提供有力保障。在实际项目中,根据...
四步轻松搞定java web每天定时执行任务 在 Java Web 开发中,定时执行任务是非常常见的需求,例如每天凌晨2点执行某个任务。今天,我们将介绍如何使用 Java 实现每天定时执行任务。 知识点1:使用 Timer 和 ...
- 定时任务执行:如每隔5秒打印一条消息。 - 日期格式化:使用`DateTimeFormatter`将日期转换为特定格式的字符串。 - 日期比较:比较两个日期是否相等、哪个早等。 - 时间戳操作:获取当前时间戳,以及将时间戳...
- 定时器在Java中用于安排在将来某个时间点执行的任务。它使用`java.util.Timer`类和`java.util.TimerTask`类来实现。`TimerTask`是实现定时任务的基础,它是一个抽象类,你需要创建其子类并重写`run()`方法来定义...
总的来说,这个示例涵盖了Java定时任务的基础,包括创建 `Timer` 实例,定义 `TimerTask`,以及调度和执行这些任务。通过学习这个示例,你可以了解到如何在Java应用程序中实现定时任务,无论是简单的延迟执行还是...
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。 service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //...
这样的功能对于需要长期运行且无需用户交互的Java应用非常有用,比如服务器端应用或者定时任务。 首先,我们需要了解什么是Windows服务。在Windows操作系统中,服务是一种在后台运行的程序,它们在用户登录之前就...
2. 可运行(RUNNABLE):线程正在Java虚拟机中执行。 3. 阻塞(BLOCKED):线程在等待监视器锁。 4. 等待(WAITING):线程在无限期等待另一个线程执行特定操作,如调用`wait()`方法。 5. 定时等待(TIMED_WAITING)...
以下是一个简单的Java定时任务示例,任务将在3秒后执行: ```java public class TimerTest01 { Timer timer; public TimerTest01(int time){ timer = new Timer(); timer.schedule(new TimerTaskTest01(), time...
在MyEclipse这样的集成开发环境中,你可以方便地调试和运行代码,观察结果。此外,注意异常处理,如`IOException`和`SAXException`,确保程序的健壮性。 总之,这个项目为你提供了一个实践平台,通过它你可以深入...
在控制台可以看到定时打印的“定时任务正在执行...”。 2. **调试和调整**:根据日志输出或业务需求,可以对定时任务的执行逻辑进行调整,如修改`@Scheduled`中的cron表达式,改变执行频率。 3. **单元测试**:为...