获取 Java 线程执行结果:Callable、Future和FutureTask
在第一节:初步掌握 Java 多线程中,我们讲述了创建线程的 3 种方式,一种是直接继承 Thread,一种是实现 Runnable 接口,另外一种是实现 Callable 接口。
前 2 种方式都有一个缺陷:在执行完任务之后无法获取执行结果。
如果需要获取执行结果,就必须通过共享变量或者线程通信的方式来达到目的,这样使用起来就比较麻烦。
Java 1.5 提供了 Callable、Future、FutureTask,它们可以在任务执行完后得到执行结果,今天我们就来详细的了解一下。
无返回值的 Runnable
由于 Runnable
的 run()
方法的返回值为 void:
public interface Runnable {
public abstract void run();
}
所以在执行完任务之后无法返回任何结果