ListenablefutureとCompletablefutureの比較
2023-10-26 10:36:33
質問
を明確に比較した記事やブログは見つかりませんでした。
ListenableFuture
と
CompletableFuture
であり、良い分析を提供しています。
だから、誰かがそのようなブログや記事を説明したり、指し示すことができれば、それは私にとって本当に良いことです。
どのように解決するのですか?
どちらも ListenableFuture と 補完可能な未来 はその親クラスである 未来 は、呼び出し元が非同期アクションが完了したときに呼び出されるコールバックを何らかの方法で登録できるようにすることで、親クラスであるFutureよりも優れています。
とは 未来 を使えば、こんなことができます。
ExecutorService executor = ...;
Future f = executor.submit(...);
f.get();
f.get()
は非同期アクションが完了するまでブロックされます。
とは ListenableFuture を使うと、このようにコールバックを登録することができます。
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()の呼び出しから受け取った値がパラメータの値として設定されます。
関連
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
-bash: java: コマンドが見つからない 解決方法
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] Javaでリストを反復処理する方法
-
[解決済み] Java Swingでset(Preferred|Maximum|Minimum)Sizeメソッドの使用は避けた方が良いのでしょうか?
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
-
[解決済み】なぜMockitoは静的メソッドをモックしないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
executeQuery()でデータ操作文が発行できない。解決方法
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
-bash: java: コマンドが見つからない 解決方法
-
セミコロン期待値エラー解決
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
eclipse にリソースリーク:'in' が閉じない
-
Java:未解決コンパイル問題の解決方法