我创建了一个简单的任务,每两分钟运行一次,一旦布尔值变为true,我想停止该任务。
ScheduledExecutorService scheduledxecutor = Executors.newScheduledThreadPool(1);
ScheduledFuture<?> scheduledFuture = scheduledExecutor.scheduleAtFixedRate(drawRunnable , 0, 2, TimeUnit.MINUTES);
我一直潜伏在stackoverflow上,基本上发现我需要使用
scheduledFuture.cancel(false)
或scheduledExecutor.shutdown()
。我应该使用哪一个?
最佳答案
cheduleExecutor.shutdown()是更好的选择,因为它可以优雅地启动所有提交的任务的关闭,而ScheduledFuture.cancel(false)仅处理该特定任务。
ExecutorService.shutdown() Java Doc
Future.cancel(boolean) JavaDoc