私は頑張ったが、 "listenablefuture"と "completablefuture"をはっきりと比較した記事やブログは見つからなかった。だから、もし誰かが私にそのようなブログや記事を説明したり指摘したりすることができれば、それは本当に良いことになるだろう。ありがとうListenablefuture対Completablefuture
17
A
答えて
17
ListenableFutureとCompletableFutureの両方とも、呼び出し側が非同期アクションが完了したときに呼び出されるコールバックを一方向または他の方法で「登録」できるようにすることで、親クラスFutureより優れています。 将来性の
あなたはこれを行うことができます。
ExecutorService executor = ...;
Future f = executor.submit(...);
f.get();
f.getを()ブロックの非同期動作が完了するまで、あなたはこのようなコールバック登録できListenableFutureで
:CompletableFutureで
ListenableFuture listenable = service.submit(...);
Futures.addCallback(listenable, new FutureCallback<Object>() {
@Override
public void onSuccess(Object o) {
//handle on success
}
@Override
public void onFailure(Throwable throwable) {
//handle on failure
}
})
をあなたも タスクが完了したときのコールバックを登録することができますが、それはそのことにListenableFuture異なっています完了したいスレッドから完了することができます。
CompletableFuture completableFuture = new CompletableFuture();
completableFuture.whenComplete(new BiConsumer() {
@Override
public void accept(Object o, Object o2) {
//handle complete
}
}); // complete the task
completableFuture.complete(new Object())
スレッドがタスクを完了すると、get()の呼び出しから受け取った値は、タスクがまだ完了していない場合はパラメータ値で設定されます。言い換えれば
関連する問題
- 1. Reactor Mono対CompletableFuture
- 2. Java 8 CompletableFuture対Netty Future
- 3. ListenableFuture to scala Future
- 4. Springを待つListenableFuture
- 5. CompletableFuture supplyAsync
- 6. CompletableFutureは
- 7. CompletableFutureブロックメインスレッド
- 8. ListenableFuture、FutureCallback、およびタイムアウト
- 9. タイムアウトでListenableFutureをブロックする
- 10. JavaのCompletableFutureチェーン
- 11. AndroidサポートライブラリのCompletableFuture?
- 12. CompletableFuture、thenComposeメソッド
- 13. JavaのCompletableFuture 8
- 14. CompletableFuture、supplyAsync()、thenApply()
- 15. JavaEEアプリケーションサーバーのCompletableFuture/parallelStream
- 16. CompletableFuture連鎖結果
- 17. Return CompletableFuture <Void>またはCompletableFuture <?>?
- 18. ListenableFutureを取得した直後にget()
- 19. spring mvc:DeferredResultとListenableFutureの違いは?
- 20. KafkaTemplateブロックはListenableFutureを返しますが
- 21. CompletableFutureとListenableFutureのコルーチン作成者に違いがあるのはなぜですか? Kotlinのコルーチンのソースを調べる
- 22. CompletableFutureに代わるAPI API17
- 23. Javaの8 CompletableFuture、ストリームとタイムアウト
- 24. 複数のthenApply in completableFuture
- 25. CompletableFuture :: runAsyncについて
- 26. Java8 CompletableFuture条件付きチェーン
- 27. Spring CompletableFutureを返すトランザクションメソッド
- 28. 完成したCompletableFutureに非同期CompletableFutureを結合する方法は?
- 29. CompletableFutureチェーンの外部プロセスを閉じる
- 30. Scala FutureをCompletableFutureに変換する
CompletableFutureそれは 'complete'メソッドを公開するので危険である(とCompletionStageインタフェースは、それは' toCompletableFuture'が公開するので)ながら... ListenableFutureは、考え抜かれたクリーンなインターフェイスです。私たちがオラクルから期待している非常によく考えられたゴミのもう一つの例です。 –
'CompletionStage'は' Future'を拡張し、 'toCompletableFuture'を公開していないと良いでしょう。そして、「ChainableFuture」のように意味のあるものに名前をつけることができました。 –
'Future'と' ListenableFuture'はインタフェースですが、 'CompletableFuture'は' Future'を実装するクラスです – cozyconemotel