Java 定时器Timer简单用法

最近在做Web项目,有一小块是开发一个数据库自动备份功能,用到了Java的定时器——Timer。项目开发中,也经常会遇到一些周期性的动作,废话不多说,直接贴代码:

public class TimerHandler {
/** timer */
private Timertimer = null;
 
/**
*定时器销毁
*
*/
public void stopTimer() {
if (null !=timer) {
timer.cancel();
}
}
 
/**
  *定时器启动
  *
  */
public void startTimer(Stringperiod) {
   timer = new Timer(true);
   Date date;
   date = new SimpleDateFormat("yyyy-MM-dd mm:ss").parse("2016-05-26 14:10");
   timer.schedule(new MyTask(),date, 1 * 60 * 1000);}
    }
 
}
 
class MyTaskextends TimerTask {
   @Override
   public void run() {
   System.out.println("数据库成功备份!!!"); }
}

最关键的就是schedule方法,本文使用的有三个参数,第一个参数是TimerTask类,实现了run方法,可以写用户需要的代码。第二个参数是开始时间,第三个参数是第一次调用方法与第二次的间隔时间。

Schedule还有很多其他方法,比如:

schedule(TimerTask task, Date time)                                  安排在指定的时间执行指定的任务。

schedule(TimerTask task,Date firstTime,long period)               安排指定的任务在指定的时间开始进行重复的固定延迟执行。

schedule(TimerTask task, long delay)                                  安排在指定延迟后执行指定的任务。

schedule(TimerTask task, long delay, long period)                  安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。

scheduleAtFixedRate(TimerTask task, Date firstTime,long period)  安排指定的任务在指定的时间开始进行重复的固定速率执行。

scheduleAtFixedRate(TimerTask task,long delay, long period)      安排指定的任务在指定的延迟后开始进行重复的固定速率执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java定时器timer)是一种能够在特定时间间隔或者特定时间点执行某些任务的工具。它可以帮助我们实现很多有用的定时任务,如定时备份数据、定时发送邮件、定时清理缓存等等。 Java中的定时器主要有两种实现方式:一种是使用Timer类,另一种是使用ScheduledExecutorService接口。在本文中,我们主要介绍使用Timer类的实现方式。 使用Timer类创建定时器的步骤如下: 1. 创建一个Timer对象 ```java Timer timer = new Timer(); ``` 2. 创建一个TimerTask对象,用于执行定时任务 ```java TimerTask task = new TimerTask() { @Override public void run() { // 定时任务的具体实现 } }; ``` 3. 调用Timer对象的schedule()方法,设置定时任务的执行时间和执行频率 ```java timer.schedule(task, delay, period); ``` 其中,delay表示任务的延迟时间,单位为毫秒;period表示任务的执行周期,单位也为毫秒。如果period为0,则表示只执行一次任务。 完整的示例代码如下: ```java import java.util.Timer; import java.util.TimerTask; public class MyTimerTask extends TimerTask { @Override public void run() { System.out.println("定时任务执行了"); } public static void main(String[] args) { Timer timer = new Timer(); MyTimerTask task = new MyTimerTask(); timer.schedule(task, 1000, 2000); } } ``` 在上面的示例代码中,我们创建了一个MyTimerTask类,继承了TimerTask类,并实现了run()方法。在main()方法中,我们创建了一个Timer对象和一个MyTimerTask对象,并调用了schedule()方法,设置了任务的延迟时间为1000毫秒,执行周期为2000毫秒。当程序执行到schedule()方法时,定时器会在1000毫秒后开始执行定时任务,并且每隔2000毫秒执行一次。 需要注意的是,当定时任务执行时间超过执行周期时,定时器会等待当前任务执行完毕后立即执行下一次任务,而不是等待执行周期结束再执行。如果我们想要避免这种情况,可以考虑使用ScheduledExecutorService接口来实现定时任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值