ScheduledFuture vs Future - 最大的区别是什么?

时间:2018-05-24 12:07:17

标签: java

来自ExecutorService接口的submit()方法返回接口Future(实际上我认为是FutureTask类),而接口ScheduledExecutorService的schedule()方法返回ScheduledFuture接口(实际上我不知道哪个类,可能是相同的FutureTask)。 / p>

唯一的区别是ScheduledFuture还实现了Delayed接口并且具有getDelay方法。

但主要的想法是什么 - 为什么它是ScheduledFuture而不仅仅是与ScheduledExecutorService一起使用的Future?

1 个答案:

答案 0 :(得分:1)

ScheduledFuture还实现了Delayed接口,其中包含方法:

long getDelay(TimeUnit unit);

Javadoc说:

  

返回与此对象关联的剩余延迟        给定时间单位。

因此,您可以获得此delay。因此,实现此接口的任务具有此delay属性,对于执行程序,这意味着在此延迟通过之前无法执行,同时Future没有此类属性,并且可以在线程池执行一次(或无论你正在使用哪个执行者,都准备执行它。