gpt4 book ai didi

java - ScheduledExecutorService 等待任务完成

转载 作者:行者123 更新时间:2023-12-02 12:58:34 29 4
gpt4 key购买 nike

我正在创建一个新线程来检查文件夹中是否有新文件,然后 hibernate 一段定义的时间。

我的首选是使用 ScheduledExecutorService,但是,我找不到任何文档来说明这是否需要等待当前正在运行的任务完成才能开始新任务。

例如下面的代码;

Integer samplingInterval = 30;
ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(10);
executorService.scheduleAtFixedRate(new WatchAgent(agentInfo),
0,
samplingInterval,
TimeUnit.SECONDS);

如果WatchAgentrun()耗时超过30秒,在完成之前是否会创建一个新的代理?

其次,如果我创建一个 WatchAgent 实例,我可以在每次定期运行时继续使用相同的实例吗?

最佳答案

根据 scheduleAtFixedRate 的 javadoc :

If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.

scheduleAtFixedRate 根据定义,采用单个 Runnable 实例。您无法为每次调用 run 提供不同的实例。因此,为了回答您的问题,每次定期运行都将始终使用相同的实例。

关于java - ScheduledExecutorService 等待任务完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20197654/

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