如何多次启动和停止scheduledexecutorservice

时间:2012-02-22 08:35:00

标签: java

我正在使用ScheduledExecutorService,在scheduleFuture上调用它的cancel方法后,我无法在其上安排Runnable。在scheduleAtFixedRate(runnable, INITIAL_DELAY, INTERVAL, TimeUnit.SECONDS)之后调用cancel(),没有任何反应。有没有办法在调用ScheduledExecutorService方法后重新启动cancel()

1 个答案:

答案 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(),都无法使用相同的服务实例。