Java 8 定时执行任务:使用 ScheduledExecutorService
在 Java 8 中,可以使用 ScheduledExecutorService 来在指定时间点执行某个操作。可以使用 ScheduledThreadPoolExecutor 类来创建 ScheduledExecutorService 实例。
下面是一个使用 ScheduledExecutorService 的例子:
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledTaskExample {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
// 在3秒后执行任务
executor.schedule(new Runnable() {
@Override
public void run() {
System.out.println('Task executed after 3 seconds.');
}
}, 3, TimeUnit.SECONDS);
// 在指定时间点执行任务
long delay = calculateDelayToNextExecutionTime();
executor.schedule(new Runnable() {
@Override
public void run() {
System.out.println('Task executed at specified time.');
}
}, delay, TimeUnit.MILLISECONDS);
executor.shutdown();
}
private static long calculateDelayToNextExecutionTime() {
// 计算距离下一个执行时间的延迟时间
// 返回延迟时间的毫秒数
return 5000;
}
}
在上面的例子中,使用 ScheduledExecutorService.schedule() 方法来安排任务的执行。第一个参数为要执行的任务,第二个参数为延迟时间,第三个参数为延迟时间的单位。
可以使用 TimeUnit 类来指定时间的单位,例如 TimeUnit.SECONDS 表示秒,TimeUnit.MILLISECONDS 表示毫秒等。
在上面的例子中,第一个任务在 3 秒后执行,第二个任务在指定的延迟时间后执行。可以根据自己的需求,使用不同的时间单位和延迟时间来执行任务。
原文地址: https://www.cveoy.top/t/topic/qsse 著作权归作者所有。请勿转载和采集!