首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ScheduledExecutorService多次启动停止

在Java中,ScheduledExecutorService是一个用于执行定时任务的工具。它可以帮助用户在指定的时间间隔内执行一个或多个任务。ScheduledExecutorService可以通过Executors工具类创建,并且支持多次启动和停止。

以下是一个简单的示例,展示了如何使用ScheduledExecutorService执行定时任务:

代码语言:java
复制
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduledExecutorServiceExample {
    public static void main(String[] args) {
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);

        Runnable task = () -> {
            System.out.println("Task executed at " + System.currentTimeMillis());
        };

        // 启动任务,每隔2秒执行一次
        executor.scheduleAtFixedRate(task, 0, 2, TimeUnit.SECONDS);

        // 停止任务,等待5秒后再停止
        executor.schedule(() -> {
            System.out.println("Shutting down executor...");
            executor.shutdown();
        }, 5, TimeUnit.SECONDS);

        // 等待任务执行完成
        try {
            executor.awaitTermination(10, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("All tasks completed.");
    }
}

在上面的示例中,我们首先创建了一个ScheduledExecutorService实例,并定义了一个任务。然后,我们使用scheduleAtFixedRate方法启动了一个定时任务,该任务将每隔2秒执行一次。接下来,我们使用schedule方法启动了一个停止任务,该任务将在5秒后停止执行器。最后,我们使用awaitTermination方法等待所有任务执行完成。

需要注意的是,ScheduledExecutorServiceshutdown方法只会停止正在执行的任务,而不会取消已经安排好的任务。如果需要取消已经安排好的任务,可以使用ScheduledFuture接口。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券