唯一的区别是ScheduledFuture还实现了Delayed接口并且具有getDelay方法。
但主要的想法是什么 - 为什么它是ScheduledFuture而不仅仅是与ScheduledExecutorService一起使用的Future?
答案 0 :(得分:1)
ScheduledFuture
还实现了Delayed
接口,其中包含方法:
long getDelay(TimeUnit unit);
Javadoc说:
返回与此对象关联的剩余延迟 给定时间单位。
因此,您可以获得此delay
。因此,实现此接口的任务具有此delay
属性,对于执行程序,这意味着在此延迟通过之前无法执行,同时Future
没有此类属性,并且可以在线程池执行一次(或无论你正在使用哪个执行者,都准备执行它。