java 定时任务框架
时间: 2024-08-28 11:01:01 浏览: 90
Java 提供了两个主要的定时任务框架:`java.util.Timer` 和 `java.util.concurrent.Executors` 中的 `ScheduledExecutorService`。
1. **Timer**:这是最早的定时任务框架,它创建了一个单独的线程来处理所有任务。你需要明确地指定任务的执行时间,不适合并发场景。它的优点是简单易用,缺点是如果主线程结束,未完成的任务将不会被执行,且只有一个任务线程可能导致阻塞。
示例代码:
```java
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
// 任务代码
}
}, delayInMilliseconds, periodInMilliseconds);
```
2. **ScheduledExecutorService**:这个框架通常用于更复杂的定时任务需求,尤其是需要管理并发任务、延迟执行或者周期执行的情况下。它是`java.util.concurrent`包下的服务,可以设置固定延迟、周期间隔、单次执行等特性,并且可以在任务完成后自动关闭。
示例代码:
```java
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleAtFixedRate(() -> {
// 任务代码
}, initialDelay, period, TimeUnit.SECONDS);
```
阅读全文