gpt4 book ai didi

java - 使用 ScheduledExecutorService 方法定期运行一批任务

转载 作者:行者123 更新时间:2023-12-02 11:33:47 25 4
gpt4 key购买 nike

我想一次提交一批任务并定期执行它们。使用 ExecutorService 对象和 invokeall 方法可以立即运行任务。但尝试使用 scheduleAtFixedRate 时,它不兼容:

executor.scheduleAtFixedRate(executor.invokeAll(callables), initialDelay, period, TimeUnit.SECONDS );

如何一次性和定期执行一批任务?

最佳答案

没有什么像invokeall这样的东西,但是通过可运行对象循环没有什么问题,因为现实中也没有什么像“立即”一样:

ScheduledExecutorService pool = Executors.newScheduledThreadPool(10);
for (int i = 0; i < 10; i++) {
pool.scheduleAtFixedRate(() -> {
// do some work
}, 0, 10, TimeUnit.SECONDS);
}

或者,如果您有一个Runnable集合:

ScheduledExecutorService pool = Executors.newScheduledThreadPool(runnables.size());
runnables.forEach((r) -> pool.scheduleAtFixedRate(r, 0, 10, TimeUnit.SECONDS));

关于java - 使用 ScheduledExecutorService 方法定期运行一批任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49092640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com