java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java ScheduledExecutorService使用

Java中ScheduledExecutorService介绍和使用案例(推荐)

作者:王伯爵

ScheduledExecutorService是Java并发包中的接口,用于安排任务在给定延迟后运行或定期执行,它继承自ExecutorService,具有线程池特性,可复用线程,提高效率,本文主要介绍java中的ScheduledExecutorService介绍和使用案例,感兴趣的朋友一起看看吧

ScheduledExecutorService 是 Java 并发包 java.util.concurrent 中的一个接口,它提供了一种机制,允许我们安排一个任务在给定的延迟后运行,或者定期地执行。

主要特点

使用案例

1. 单次调度

import java.util.concurrent.*;
public class SingleScheduleExample {
    public static void main(String[] args) {
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
        scheduler.schedule(() -> {
            System.out.println("任务执行了");
        }, 5, TimeUnit.SECONDS); // 5秒后执行
        scheduler.shutdown();
    }
}

2. 周期性调度

import java.util.concurrent.*;
public class PeriodicScheduleExample {
    public static void main(String[] args) {
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
        Runnable task = () -> {
            System.out.println("周期性任务执行了");
        };
        scheduler.scheduleAtFixedRate(task, 1, 3, TimeUnit.SECONDS); // 初始延迟1秒,之后每3秒执行一次
        // 如果需要在一定次数后停止
        scheduler.schedule(() -> scheduler.shutdown(), 10, TimeUnit.SECONDS);
    }
}

3. 固定延迟调度

import java.util.concurrent.*;
public class FixedDelayScheduleExample {
    public static void main(String[] args) {
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
        Runnable task = () -> {
            System.out.println("固定延迟任务执行了");
        };
        scheduler.scheduleWithFixedDelay(task, 1, 3, TimeUnit.SECONDS); // 初始延迟1秒,之后每次执行完任务后等待3秒再执行下一次
        // 如果需要在一定次数后停止
        scheduler.schedule(() -> scheduler.shutdown(), 10, TimeUnit.SECONDS);
    }
}

注意事项

ScheduledExecutorService 是一个非常强大的工具,可以帮助我们处理需要定时或周期性执行的任务,而且它还提供了线程池的优化,使得资源利用更加高效。

到此这篇关于java中的ScheduledExecutorService介绍和使用案例的文章就介绍到这了,更多相关java ScheduledExecutorService使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文