Java ScheduledExecutorService行为?

时间:2014-08-07 01:57:45

标签: java

我有以下代码:

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1, nameOfPool);
scheduler.scheduleAtFixedRate (new Runnable() {
    @Override
    public void run() {
       if (someCondition) {
           return;
       }   
    }
}, 0L, 30, TimeUnit.MINUTES);

可能是一个愚蠢的问题,但run()仍然会每隔30分钟运行一次,即使我return;身体内run()已经遇到someCondition?< / p>

1 个答案:

答案 0 :(得分:0)

是的,当然。

即使someCondition未得到满足,会发生什么?流量将从run的底部掉出,这与返回的情况相同。

即使run方法返回,也可能会出现问题

  

任务只会通过取消或终止执行人来终止。如果执行此任务的时间超过其周期,则后续执行可能会延迟,但不会同时执行。