ScheduledExecutorService
时间: 2023-10-17 12:26:41 浏览: 131
ScheduledExecutorService 是 Java 中用于调度任务的接口。它是 ExecutorService 的子接口,用于在给定的延迟之后或定期执行任务。
通过 ScheduledExecutorService,你可以创建和管理线程池,以便在未来的某个时间点执行任务。它提供了几种方法来调度任务,包括延迟执行、固定频率执行和固定延迟执行。
下面是一个简单的示例,演示如何使用 ScheduledExecutorService 来周期性地执行任务:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledExecutorExample {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
Runnable task = () -> {
System.out.println("Task executed!");
};
// 延迟 2 秒后执行任务
executor.schedule(task, 2, TimeUnit.SECONDS);
// 固定频率执行任务,每隔 1 秒执行一次
executor.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);
// 固定延迟执行任务,每次任务完成后延迟 1 秒再执行下一次
executor.scheduleWithFixedDelay(task, 0, 1, TimeUnit.SECONDS);
}
}
```
在上面的例子中,我们创建了一个 ScheduledExecutorService,并使用 `Executors.newScheduledThreadPool` 方法创建了一个大小为 1 的线程池。然后,我们定义了一个任务(Runnable 对象)并使用不同的方法调度了这个任务。
在实际应用中,ScheduledExecutorService 可以用于定时任务、周期性任务或者延迟任务的调度。它提供了一种方便而灵活的方式来管理任务执行,避免了手动创建和管理线程的复杂性。
阅读全文