ScheduledFuture和RunnableScheduledFuture详解

 
ScheduledFuture
java.util.concurrent
接口 ScheduledFuture<V>
类型参数:
    V - 此 Future 返回的结果类型。
所有超级接口:
    Comparable<Delayed>, Delayed, Future<V>
所有已知子接口:
    RunnableScheduledFuture<V> 
ScheduledFuture很简单,它就是在Future<V>基础上还集成了Comparable<Delayed>Delayed的接口。
它用于表示ScheduledExecutorService中提交了任务的返回结果。我们通过Delayed的接口getDelay()方法知道该任务还有好久才被执行。
关于ScheduledExecutorService的更多内容请参考《ScheduledThreadPoolExecutor
主要函数
long getDelay(TimeUnit unit)
    返回与此对象相关的剩余延迟时间,以给定的时间单位表示。
    参数:
        unit - 时间单位 
    返回:
        剩余延迟时间;零或负值指示延迟时间已经用尽
注意1:JDK中并没提供ScheduledFuture的实现类。只有在ScheduledExecutorService中提交了任务,
才能返回一个实现了ScheduledFuture接口的对象。
RunnableScheduledFuture
java.util.concurrent
接口 RunnableScheduledFuture<V>
类型参数:
    V - 此 Future 的 get 方法所返回的结果类型。
所有超级接口:
    Comparable<Delayed>, Delayed, Future<V>, Runnable, RunnableFuture<V>, ScheduledFuture<V>
public interface RunnableScheduledFuture<V>
extends RunnableFuture<V>, ScheduledFuture<V>
RunnableScheduledFuture作为 是实现了Runnable 的 ScheduledFuture。当成功执行RunnableScheduledFuture对象的run 方法后,可以通过该RunnableScheduledFuture对象的Future 接口并允许访问其结果。 
RunnableScheduledFuture做为ScheduledFuture的子类,它集成了RunnableFuture<V>和ScheduledFuture<V>这两个接口。
唯一自定义接口
boolean isPeriodic()
        如果这是一个定期任务,则返回 true。定期任务可以根据计划重新运行。非定期任务只能运行一次。
    返回:
        如果此任务是定期的,则返回 true
原文地址:https://www.cnblogs.com/wxgblogs/p/5471315.html