首页
学习
活动
专区
工具
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接口。

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

相关·内容

12分19秒

02_定义_启动和停止服务.avi

4分33秒

07_尚硅谷_Kafka_入门_启动停止脚本

6分45秒

12_尚硅谷_zk_集群_启动停止脚本

9分27秒

34_尚硅谷_用户行为采集_Zookeeper启动停止脚本

5分34秒

55_尚硅谷_用户行为采集_Kafka启动停止脚本

4分55秒

56、尚硅谷_SpringBoot_Docker-docker安装&启动&停止.avi

11分5秒

12_应用练习3_启动和停止服务.avi

3分24秒

09_尚硅谷_MySQL基础_MySQL服务的启动和停止

12分6秒

37_尚硅谷_数仓采集_Kafka集群启动停止脚本

19分28秒

44_尚硅谷_数仓采集_采集通道启动停止脚本

16分15秒

35_尚硅谷_数仓采集_日志采集Flume启动停止脚本

3分24秒

09_尚硅谷_MySQL基础_MySQL服务的启动和停止.avi

领券