java定时器的使用(timer)
时间: 2024-01-21 22:45:21 浏览: 149
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接口来实现定时任务。
阅读全文