我有一个 singleThreadExecutor,我正在用这样的 scheduledFixedDelay 提供一个 Runnable
Runnable periodic = new Runnable() { ... }
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleWithFixedDelay(periodic, 1, 1, TimeUnit.MINUTES);
它将在两次执行之间延迟 1 分钟运行。问题是,有时我需要“按需”运行它。这可能吗?
我考虑过取消执行,运行 Runnable 并重新开始执行,但我真正想要的是一些简单的方法,它只是提前执行 Runnable 并重新安排它在一分钟内再次运行。
最佳答案
当你希望任务运行时你可以提交它
executor.submit(periodic);
或延迟添加
executor.schedule(periodic, delay, units);
关于java - 我可以强制执行额外的计划执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12935481/