📅  最后修改于: 2023-12-03 15:16:26.282000             🧑  作者: Mango
Java中的 ScheduledExecutorService 接口是一个调度器,它可用于在指定时间内按照一定的频率执行任务。该接口是在Java5中引入的,并且是java.util.concurrent包中的一部分。ScheduledExecutorService接口提供了两种方法来调度任务:
ScheduledExecutorService接口在实现定时任务的时候非常方便,比如定时备份、定时清理数据、定时发送邮件等。
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledExecutorServiceDemo {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
// schedule()方法 - 在指定的延迟时间后执行一次任务
executor.schedule(() -> System.out.println("Hello, World!"), 5, TimeUnit.SECONDS);
// scheduleAtFixedRate()方法 - 按照指定的间隔时间在指定时间开始重复执行任务
executor.scheduleAtFixedRate(() -> System.out.println("Task executed at " + System.currentTimeMillis()), 0, 1, TimeUnit.SECONDS);
}
}
public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit);
| 参数 | 描述 | | --- | --- | | command | 要执行的任务 | | delay | 任务执行前的延迟时间 | | unit | delay参数的时间单位 |
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit);
| 参数 | 描述 | | --- | --- | | command | 要执行的任务 | | initialDelay | 任务第一次执行前的延迟时间 | | period | 每次执行任务间的间隔时间 | | unit | initialDelay和period参数的时间单位 |
ScheduledExecutorService接口是Java中实现定时任务非常方便的接口。使用该接口可实现各种不同的任务,比如定时备份、定时清理数据、定时发送邮件等。在Java5中引入的ScheduledExecutorService接口简化了多线程编程,并提高了线程的可靠性和效率。