Java 在并发方面引入了 「 将来 」( Future
) 这个概念。把所有不在主线程执行的代码都附加了将来这个灵魂。主线程只负责其它并发线程的创建、启动、监视和处理并发线程完成任务或发生异常时的回调。其它情况,则交给并发线程自己去处理。而双方之间的沟通,就是通过一个个被称之为 「 将来 」 的类出处理。
Future
定义在 java.util.concurrent
包中,这是一个接口,自 Java 1.5 以来一直存在的接口,用于处理异步调用和处理并发编程。
创建 Future
简单地说,Future
类表示异步计算的未来结果 – 在处理完成后最终将出现在 Future
中的结果。
是不是又很难理解,文字越少,内容越多。上面这句话的意思,就是主线程会创建一个 Future
接口的对象,然后启动并发线程,并告诉并发线程,一旦你执行完毕,就把结果存储在这个 Future
对象里。
因此,理解 Future
的第一步,就是要知道如何创建和返回 Future
实例。
一般情况下,我们会把长时间运行的逻辑放在异步线程中进行处理,这是使用 Future
接口最理