JDK 8で導入されたCompletableFuture
は、Nettyによって提供されたio.netty.util.concurrent.Future
とどのように比較されますか?Java 8 CompletableFuture対Netty Future
ネッティードキュメントが
JDK 8がやや
io.netty.util.concurrent.Future
http://netty.io/wiki/using-as-a-generic-library.html
と重なるCompletableFutureを追加することに言及し、私は答えを取得しようとしている質問は以下のとおりです。
- 彼らの類似点と相違点シス?
- 2つのパフォーマンス特性はどのように異なるでしょうか?どちらの方がスケールを改善できますか?類似点/相違点に関して
、私は次のように出てくることができました:
類似点: 基本的な類似性は、両方のは、Javaと比較して、非ブロックされているということで未来。どちらのクラスも、将来へのリスナーの追加、タスクの失敗と成功のイントロスペクション、およびタスクからの結果の取得に使用できるメソッドを持っています。
違い: CompletableFuture
網状のio.netty.util.concurrent.Future
一方、などの複数の非同期活動を構成するようなもののためのより豊かなインターフェースを持っていると思われる同じ未来に追加する複数のリスナーを可能にし、しかもリスナーにすることができます除去される。
'CompletableFutureを呼び出すことができます。thenDoSomething() 'メソッドを複数回呼び出すことができます。これは、将来の他のフレームワークで複数のリスナーを追加するのに似ています。 –
CompletableFutureにはNetty Futureのようなイベントループがありますか? – user1870400
@ user1870400 'CompletableFuture'(および' CompletionStage'を実装している他のクラス)には、 'thenApply'や' thenApplyAsync'のようなメソッドがあり、異なる方法で動作します。 'thenApply'のようなメソッドは同じスレッド上で直ちに実行されますが、' thenApplyAsync'は 'Executor'を使って実行されます。デフォルトはイベントスチールプールですが、イベントループで実装されます。 – kag0