- java.lang.Object
 -  
      
- java.util.concurrent.FutureTask<V>
 
 
-  
       
- 参数类型
 -  
         
V- 此FutureTask的get方法返回的结果类型 
- 实现的所有接口
 -  
         
Runnable,Future<V>,RunnableFuture<V> 
public class FutureTask<V> extends Object implements RunnableFuture<V>
可取消的异步计算。 此类提供了Future的基本实现,包括启动和取消计算的方法,查询计算是否完成的查询以及检索计算结果。 只有在计算完成后才能检索结果; 如果计算尚未完成,get方法将阻止。 计算完成后,无法重新启动或取消计算(除非使用runAndReset()调用计算)。FutureTask可用于包装Callable或Runnable对象。 因为FutureTask实现Runnable,FutureTask可以将FutureTask提交给Executor以供执行。除了作为独立类之外,此类还提供
protected功能,这在创建自定义任务类时可能很有用。- 从以下版本开始:
 - 1.5
 
 
-  
        
       
-  
             
构造方法摘要
构造方法 构造器 描述 FutureTask(Runnable runnable, V result)创建一个FutureTask,在运行时执行给定的Runnable,并安排get在成功完成时返回给定的结果。FutureTask(Callable<V> callable)创建一个FutureTask,在运行时将执行给定的Callable。 
-  
             
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 protected voiddone()当此任务转换到状态isDone(无论是正常还是通过取消),调用受保护的方法。Vget()如果需要等待计算完成,然后检索其结果。Vget(long timeout, TimeUnit unit)如果需要,最多等待计算完成的给定时间,然后检索其结果(如果可用)。protected booleanrunAndReset()执行计算而不设置其结果,然后将此未来重置为初始状态,如果计算遇到异常或被取消则无法执行此操作。protected voidset(V v)将此future的结果设置为给定值,除非已设置或已取消此未来。protected voidsetException(Throwable t)导致此未来报告带有给定throwable的ExecutionException作为其原因,除非此未来已设置或已取消。StringtoString()返回此FutureTask的字符串表示形式。-  
               
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 
-  
               
声明方法的接口 java.util.concurrent.Future
cancel, isCancelled, isDone 
-  
               
声明方法的接口 java.util.concurrent.RunnableFuture
run 
 -  
               
 
 -  
             
 
-  
        
       
-  
             
构造方法详细信息
-  
FutureTask
public FutureTask(Callable<V> callable)
创建一个FutureTask,在运行时将执行给定的Callable。- 参数
 -  
              
callable- 可调用的任务 - 异常
 -  
              
NullPointerException- 如果callable为null 
 
-  
FutureTask
public FutureTask(Runnable runnable, V result)
创建一个FutureTask,在运行时执行给定的Runnable,并安排get在成功完成后返回给定的结果。- 参数
 -  
              
runnable- 可运行的任务 -  
              
result- 成功完成后返回的结果。 如果您不需要特定结果,请考虑使用以下形式的结构:Future<?> f = new FutureTask<Void>(runnable, null) - 异常
 -  
              
NullPointerException- 如果runnable为null 
 
 -  
 
-  
             
方法详细信息
-  
get
public V get() throws InterruptedException, ExecutionException
从界面复制的说明:Future如果需要等待计算完成,然后检索其结果。- Specified by:
 -  
              
get在界面Future<V> - 结果
 - 计算结果
 - 异常
 -  
              
CancellationException- 如果计算被取消 -  
              
InterruptedException- 如果当前线程在等待时被中断 -  
              
ExecutionException- 如果计算引发异常 
 
-  
get
public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
从界面复制的说明:Future如果需要,最多等待计算完成的给定时间,然后检索其结果(如果可用)。- Specified by:
 -  
              
get在界面Future<V> - 参数
 -  
              
timeout- 等待的最长时间 -  
              
unit- 超时参数的时间单位 - 结果
 - 计算结果
 - 异常
 -  
              
CancellationException- 如果计算被取消 -  
              
InterruptedException- 如果当前线程在等待时被中断 -  
              
ExecutionException- 如果计算引发异常 -  
              
TimeoutException- 如果等待超时 
 
-  
done
protected void done()
当此任务转换到状态isDone(无论是正常还是通过取消)时调用的受保护方法。 默认实现什么都不做。 子类可以重写此方法以调用完成回调或执行簿记。 请注意,您可以在此方法的实现中查询状态,以确定是否已取消此任务。 
-  
set
protected void set(V v)
将此future的结果设置为给定值,除非已设置或已取消此未来。成功完成计算后,
RunnableFuture.run()方法在内部调用此方法。- 参数
 -  
              
v- 该值 
 
-  
setException
protected void setException(Throwable t)
导致此未来报告带有给定throwable的ExecutionException作为其原因,除非此未来已设置或已取消。计算失败时,
RunnableFuture.run()方法在内部调用此方法。- 参数
 -  
              
t- 失败的原因 
 
-  
runAndReset
protected boolean runAndReset()
执行计算而不设置其结果,然后将此未来重置为初始状态,如果计算遇到异常或被取消则无法执行此操作。 这适用于本质上执行多次的任务。- 结果
 -  
              
true如果成功运行并重置 
 
 -  
 
 -