我正在跟进一个有趣的问题,关于将 ScheduledThreadPoolExecutor 用于某些重复任务。
调度此对象会返回一个 ScheduledFuture 对象,可以使用该对象取消任务的下一次运行。
这里需要注意的一件事是任务本身与日程完全脱钩——
ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(1);
ScheduledFuture nextSchedule =
executor.schedule(task, 60000, TimeUnit.MILLISECONDS);
在哪里-
SomeTask task = new SomeTask();
所以任务本身并不知道时间表。如果有办法让任务取消并为自己创建一个新的计划,请赐教。
谢谢