我有以下代码:
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>
答案 0 :(得分:0)
是的,当然。
即使someCondition
未得到满足,会发生什么?流量将从run
的底部掉出,这与返回的情况相同。
即使run
方法不返回,也可能会出现问题
任务只会通过取消或终止执行人来终止。如果执行此任务的时间超过其周期,则后续执行可能会延迟,但不会同时执行。