setExecuteExistingDelayedTasksAfterShutdownPolicy方法与setContinueExistingPeriodicTasksAfterShutdownPolicy方法的比较

一、setExecuteExistingDelayedTasksAfterShutdownPolicy方法

    这个方法大多是与schedule方法和shutdown方法搭配使用的。

   public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value);

   对value值的分析

情况一、

展示代码:

		executor.setExecuteExistingDelayedTasksAfterShutdownPolicy(true);
		executor.shutdown();

当是true时,在执行shutdown方法后,当前正在等待的任务的和正在运行的任务需要被执行完,然后进程被销毁;

情况二、

展示代码:

		executor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
		executor.shutdown();

是false时,表示放弃等待的任务,正在运行的任务一旦完成,则进程被销毁,对与cheduleAtFisedRate方法和scheduleWithFixedDelay方法,则会打断循环,只执行当前正在执行的任务,不会对他们在进行循环执行

二、setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean value)

    这个方法大多是与cheduleAtFisedRate方法和scheduleWithFixedDelay方法搭配使用的

对value值的分析:

情况一、

executor.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
executor.shutdown();

当是true时,在cheduleAtFisedRate方法和scheduleWithFixedDelay方法提交的任务会继续循环执行

情况二、

executor.setContinueExistingPeriodicTasksAfterShutdownPolicy(false);
executor.shutdown();

当是false时,

在cheduleAtFisedRate方法和scheduleWithFixedDelay方法提交的任务不会被循环执行,但是会将等待的任务执行完毕,然后进程被销毁

原文地址:https://www.cnblogs.com/l1019/p/6769632.html