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方法提交的任务不会被循环执行,但是会将等待的任务执行完毕,然后进程被销毁