問題タブ [completable-future]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2871 参照

java - Java 8はCompletableFuture::joinでストリームの順序を維持します

非同期で実行されるクエリの入力ストリームがあります。Completablefuture::joinを使用するときに、これらの要求の結果が入力クエリ ストリームの順序で収集されるようにしたいと考えています。

これは私のコードがどのように見えるかです:

SQLQueryEngine.execute(クエリ); を返すList<Results>ため、出力はList<List<Result>です。すべての結果を平坦化して 1 つのリストに結合したいと考えています。フラット化するコレクションの前に .flatMap(List::stream) を使用すると、順序が維持されますか?

0 投票する
1 に答える
2846 参照

java - オプションから> CompletableFutureへ>

Optional<CompletableFuture<T>>に変換したいと思いCompletableFuture<Optional<T>>ます。を使用しないより慣用的な方法はありOptional.get()ますか?

0 投票する
1 に答える
398 参照

java - Scala の未来から Java の Completable の未来へ

1 - Scala の将来から Java Completable の将来に移行するための lib または推奨事項はありますか?

API で先物を返す Scala ライブラリに適応させる必要があるレガシー システムがあります。

2 - また、threadPool executor 間の複雑さがどのように機能するのか疑問に思っていました。複雑さとは、従来の Java アプリから forkjoin 共通プールに取り組んでいることと、Scala lib に独自の ThreadPool エグゼキューターがあることを意味します。

この最後の質問は、スレッド プール エグゼキュータ間の通信がどのように行われるのか、私がいつも疑問に思っていることです。Javaでは、将来をいくらかポーリングしてキャンセルできるので、別のコンテキストからそれを行いますか。

0 投票する
2 に答える
3743 参照

java - CompletableFuture の実行時に OutOfScopeException をスローする Guice

リクエスト スコープ スレッドから、CompletableFutures はエグゼキュータで実行されているタスクによって完了する必要があります。提供されたサプライヤーは、MessageServiceセッション スコープのドメイン固有のサービスを使用します。そのサービスは Guice によって注入されます。

には、注入されるMessageService(セッション スコープ)があります。MessageRestClient

を注入しようとすると、Guice がトラブルに巻き込まれMessageRestClientます。

のメソッドについて読みましたServletScopes:public static <T> Callable<T> transferRequest(Callable<T> callable) しかし、Callables が機能しないため、これを使用する方法がわかりません。解決策を教えてください。

0 投票する
5 に答える
11091 参照

java - CompletableFuture: 最初のものが正常に戻るのを待っていますか?

私はいくつかCompletableFutureの s を持っており、それらを並行して実行し、正常に戻る最初の s を待っています。

CompletableFuture.anyOf最初に返されるのを待つために使用できることはわかっていますが、これは通常または例外的に返されます。例外を無視したい。

0 投票する
1 に答える
3754 参照

multithreading - CompletableFuturesに関連付けられているスレッド内から完了またはキャンセルされたことを通知する方法は?

私は CompletableFutures について多くのことを読んできましたが、CompletableFuture は Future のように基礎となる計算コードにアクセスできないという事実に焦点を当てています。では、completableFuture が関連付けられている任意のタスク内から、どうすれば complete() または cancel() を通知できますか (または、外部から計算を中断したい場合は isCancelled() を確認します)。

編集:私を混乱させることの1つは、CFが構成可能性または手動設定可能性のいずれかの代替手段よりも使用されていることです。

同時に「完成可能」+「構成可能」ではない方法で設計するポイントは何ですか?

CF が架空の CompletableCallable に似たインターフェイスを入力として使用したかのようにそれらを使用する方法を見つけたいのですが、方法がわかりません。Callables/Runnables の代わりのようなものなFunction<CompletableFuture,T>ので、次のように使用できます。

コードが計算されるとき、まさに CF_REF_BIS 参照が、スコープ全体でアクセスする必要なく、将来の計算で実際に CF_REF として渡されるものとして、内部実行メカニズムによって返されます。

つまり、新しい CompeltableCallable() を作成し、任意のスレッドが CompletableFuture セマフォにアクセスできる任意の場所に n 回送信するだけで、計算コードを非匿名化して再利用できることを意味します。

例えば:

その必要性を達成する方法はありますか?私は何かを忘れていますか?私のアプローチに根本的な矛盾はありますか? Java CompletableFuture はまだ中途半端な便利な設計ですか?

0 投票する
2 に答える
4908 参照

java - CompletableFuture.allOf が CompletableFuture として宣言される理由?

結果のコレクションなどを返さないとCompletableFuture.allOf宣言されているのはなぜですか? returnCompletableFuture<Void>にするのは良い考えだと思いますが、これら2つのメソッドが接続されているので、それらが返すものについて混乱しています。CompletableFuture.anyOfCompletableFuture<Object>