7

我有一个 singleThreadExecutor,我正在用这样的 scheduleFixedDelay 喂一个 Runnable

Runnable periodic = new Runnable() { ... }

ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleWithFixedDelay(periodic, 1, 1, TimeUnit.MINUTES);

它将在两次执行之间延迟 1 分钟运行。问题是,有时我需要“按需”运行它。那可能吗?

我考虑过取消执行,运行 Runnable 并重新启动执行,但我真正想要的是一些简单的方法,它只是提前执行 Runnable 并重新安排它在一分钟内再次运行。

4

1 回答 1

4

当您希望任务运行时,您可以提交它

executor.submit(periodic);

或延迟添加

executor.schedule(periodic, delay, units);
于 2012-10-17T13:34:36.997 回答