java 定时触发
时间: 2023-10-11 10:17:56 浏览: 44
Java 中可以使用 Timer 和 ScheduledExecutorService 两种方式来实现定时触发任务。
1. 使用 Timer
Timer 是 Java 中一个定时器工具类,可以用来在指定的时间点触发任务执行。以下是一个简单的例子:
```java
import java.util.Timer;
import java.util.TimerTask;
public class TimerExample {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
System.out.println("Task executed at " + new Date());
}
};
timer.schedule(task, 5000); // 5秒后执行任务
}
}
```
在上面的例子中,我们创建了一个 Timer 对象,并定义了一个 TimerTask,这个任务将在 5 秒后执行。通过调用 schedule 方法来指定任务执行的时间和间隔。
2. 使用 ScheduledExecutorService
Java 5 引入了 ScheduledExecutorService 接口,可以用来实现更灵活的定时任务调度。以下是一个例子:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledExecutorServiceExample {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
Runnable task = new Runnable() {
public void run() {
System.out.println("Task executed at " + new Date());
}
};
executor.schedule(task, 5, TimeUnit.SECONDS); // 5秒后执行任务
}
}
```
在上面的例子中,我们使用 ScheduledExecutorService 创建了一个线程池,并定义了一个 Runnable 任务,这个任务将在 5 秒后执行。通过调用 schedule 方法来指定任务执行的时间和间隔。ScheduledExecutorService 还提供了其他更多的方法来实现更加灵活的任务调度。