Java 计划好的未来与未来——最大的区别是什么?
ExecutorService接口的submit()方法返回接口Future(实际上我认为FutureTask类),而接口ScheduledExecutorService的schedule()方法返回ScheduledFuture接口(实际上我不知道是哪个类,可能是同一个FutureTask) 唯一的区别是ScheduledFuture还实现了延迟接口,并具有getDelay方法Java 计划好的未来与未来——最大的区别是什么?,java,Java,ExecutorService接口的submit()方法返回接口Future(实际上我认为FutureTask类),而接口ScheduledExecutorService的schedule()方法返回ScheduledFuture接口(实际上我不知道是哪个类,可能是同一个FutureTask) 唯一的区别是ScheduledFuture还实现了延迟接口,并具有getDelay方法 但主要的想法是什么?为什么ScheduledExecutorService使用的是ScheduledFuture而不
但主要的想法是什么?为什么ScheduledExecutorService使用的是ScheduledFuture而不仅仅是Future?
ScheduledFuture
还实现了Delayed
接口,该接口具有以下方法:
long getDelay(TimeUnit unit);
Javadoc说:
返回与此对象关联的剩余延迟,以
给定的时间单位
因此,您可以获得此延迟
。因此,实现此接口的任务具有此延迟
属性,对于executor,这意味着在延迟过去之前无法执行此任务,同时未来
不具有此属性,可以在threadpool(或您使用的任何执行者)准备好执行它后执行