如何让一个ScheduledExecutorService提前运行一个Runnable?

我正在使用 a每隔一分钟定期ScheduledExecutorService运行一个特定的作业(作为普通实现)(使用 method )。RunnablescheduleAtFixedDelay()

然而,有时我希望它立即醒来,调用Runnable然后返回到它的普通策略(即再次等待 1 分钟)。

有没有一种简单的方法可以实现这一目标?

我检查了 及其超类的 API ScheduledExecutorService,但到目前为止没有找到合适的 API。

当然,我可以求助于其他一些方法,比如将相同的方法传递Runnable给为特殊目的创建的单独线程,但使用 的方法ScheduledExecutorService会更优雅。


慕的地8271018
浏览 101回答 1
1回答

幕布斯7119047

只需记住您对日程安排的调用中的ScheduledFuture即可。如果您随后想提前运行它,请调用future.cancel(),再次提交任务以立即执行,然后再次安排它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java