JAVA 如何实现 判断到了某一个时刻 就执行一个任务?

来源:百度知道 编辑:UC知道 时间:2024/05/07 05:14:43
做一个小程序,实现每半个小时自动更新一次数据库,怎么实现程序运行后每隔一段时间就执行一次任务(用sleep 或delay程序运行后必需用任务管理器关闭的情况不是我需要的,怎么能不用任务管理器就能关闭?或则其它更好的建议?),或者到了某个时间,比如每个小时的5分5秒就执行一次任务?(到某个时间的更好,谢谢!)

请参考java.util.Timer的文档
public class Timer extends Object
一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。

此类的实例可以实现在指定的时间或延时后开始指定速率(周期)的重复执行 是用来作为后台维护线程的一个很好的选择。

很简单 只需要用你需要的任务来实现一个TimerTask的run方法 并将这个TimerTask的实例在调用timer.scheduleAtFixedRate方法时传入
只需要将开始时间设定为某个小时的5分5秒 然后周期设为一个小时就可以了

具体请参考JDK文档 timer会作为一个独立的线程运行在后台 不影响主线程的运行 并在所有线程都退出后退出(作为守护线程)

你每隔一段时间就开启一个线程就是了
(用这个线程去更新数据库,如果要什么参数,构造函数是好东西)
线程执行完了run内的逻辑代码 自动会被虚拟机回收的
-----------------------------------
Date date = new Data(System.currentTimeMills);
获取当然系统
然后取你要的参数呗

调用这个方法System.currentTimeMillis();返回的是现在程序运行的时间到1997年7月7号的时间,你多次调用System.currentTimeMillis()方法,再相减一下不就好了

关注一下