我正在使用ScheduledExecutorService,在scheduleFuture上调用它的cancel方法后,我无法在其上安排Runnable。在scheduleAtFixedRate(runnable, INITIAL_DELAY, INTERVAL, TimeUnit.SECONDS)
之后调用cancel()
,没有任何反应。有没有办法在调用ScheduledExecutorService
方法后重新启动cancel()
?
答案 0 :(得分:0)
请查看有关Future及其实施FutureTask的说明。
调用cancel()方法的效果是:
subsequent calls to isDone() will always return true. Subsequent
calls to isCancelled() will always return true if this method
returned true.
Once the computation has completed, the computation cannot be
restarted or cancelled.
意思是,如果对isDone()
的通话返回true
,无论您是否拨打了cancel()
,都无法使用相同的服务实例。