接口callable <V> 类型参数 V-call方法的结构类型
public interface Callable<V>
返回结果并且可能抛出的异常的任务。实现者定义一个不带任何参数的的call()方法,
Callable 接口类似于Runnable ,两者都是为了哪些真实实例可能被另一个线程执行的类设计的,
但是Runnable 不会返回结果,并且无法抛出经过的检查的异常
Executors
类包含一些从其他普通形式转换成 Callable 类的实用方法。
public interface Future<V>
Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。
计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法。取消则由 cancel 方法
来执行。还提供了其他方法,以确定任务是正常完成还是被取消了。一旦计算完成,就不能再取消计算。
如果为了可取消性而使用 Future 但又不提供可用的结果,则可以声明 Future<?> 形式类型、并返回 null 作为底层任务的结果。
Callable和Runnable的区别如下:
I Callable定义的方法是call,而Runnable定义的方法是run。
II Callable的call方法可以有返回值,而Runnable的run方法不能有返回值。
III Callable的call方法可抛出异常,而Runnable的run方法不能抛出异常。