在 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 秒后执行,第二个任务在指定的延迟时间后执行。可以根据自己的需求,使用不同的时间单位和延迟时间来执行任务。

Java 8 定时执行任务:使用 ScheduledExecutorService

原文地址: https://www.cveoy.top/t/topic/qsse 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录