JDK 8中引入的CompletableFuture
与Netty提供的io.netty.util.concurrent.Future
相比如何?
Netty文档提到
JDK 8添加了有些重叠的CompletableFuture
io.netty.util.concurrent.Future
http://netty.io/wiki/using-as-a-generic-library.html
我试图得到答案的问题是:
关于相似点/不同点,我能够提出以下建议:
相似点: 与Java Future相比,两者都是非阻塞的基本相似之处。这两个类都有可用于向未来添加侦听器,内省失败和任务成功的方法,并从任务中获取结果。
差异:
CompletableFuture
似乎有更丰富的界面来组合多个异步活动等。另一方面,Netty的io.netty.util.concurrent.Future
允许将多个侦听器添加到同一个Future中,而且允许侦听器成为除去。
答案 0 :(得分:1)
如果我们看整段(特别是第一句)
Java有时会通过采用包含构造的想法来推进 由Netty提供。例如,JDK 8添加了CompletableFuture 有点重叠io.netty.util.concurrent.Future。在这种情况下, Netty的构造为您提供了良好的迁移途径;我们会 在考虑未来迁移的情况下,努力更新API。
它基本上说的是,网络Future
和CompletableFuture
是相同的概念,但是在不同的时间由不同的人实施。
Netty创造了他们的未来,因为在Java中没有一个可用,并且他们不想从Guice这样的东西中引入一个。但是现在,java创建了一个,它可以使用
在段落的最后,他们基本上说netty API可能会在将来用Future
取代CompletableFuture
。
就相似性/差异而言,它们只是future/promise模式的许多实现中的一种。当您使用netty api和netty特定内容时,请使用netty,否则请使用CompletableFuture
。