除了lambda表达式,Java 8新的 java.time API,多个较小的添,还给我们带来了CompletableFuture类。这个实用程序极大地改进了Java 5之后的Future接口。纯Future 代表的是在后台运行的异步操作,通常是从ExecutorService获得的。然而,Future的API过于简单,迫使开发人员在Future中一直调用Future.get()阻塞代码。不可能有效地实现等待第一个Futures完成,而无需忙着等待。而且并没有与Future组合的可选操作。下面的部分将简要描述CompletableFuture是如何工作的。之后,我们将在CompletableFuture 和Observable之间实现薄的互通层。