問題タブ [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 投票する
3 に答える
569 参照

java - CompletableFuture は、タスクが独立していることをどのように認識していますか?

次のダミー コードがあるとします。

この場合、 JVM はそれを認識し、独立したスレッドを実行しますかcf1? cf2また、スレッドが依存する場合 (たとえば、データベースへの接続を 1 つ使用する場合) はどうなりますか?

より一般的には、どのようにCompletableFutureスレッドを同期しますか?

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

java - CompletableFuture allOf に渡された完成した先物にどのようにアクセスしますか?

Java 8 CompletableFuture を把握しようとしています。これらを人に結合して「allOf」の後に返すにはどうすればよいですか。以下のコードは機能していませんが、私が試したことのアイデアが得られます。

JavaScript ES6では、私はそうします

これまでの Java での取り組み

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

java - CompletableFuture の別のセットが完成したときに CompletableFuture を完成させるにはどうすればよいですか?

10 個の完了可能な先物 (futureN) を作成する完了可能な先物 (future1) があります。すべての futureN が完了した場合にのみ、future1 を完了として設定する方法はありますか?

0 投票する
4 に答える
52887 参照

java - CompletableFuture を返すまたは CompletableFuture ?

を返す非同期メソッドを書きたいと思いますCompletableFuture。future の唯一の目的は、結果ではなく、メソッドがいつ完了するかを追跡することです。戻った方がいいですかCompletableFuture<Void>、それともCompletableFuture<?>?どちらか一方を好む理由はありますか、それとも交換可能ですか?

パラメーター リスト、変数宣言、またはその他のコンテキストではなく、戻り値の型についてのみ質問していることに注意してください。

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

java - CompletableFuture、可変オブジェクト、およびメモリの可視性

CompletableFutureJava 8 がJava メモリ モデルとどのように相互作用するかを理解しようとしています。プログラマーの正気のために、理想的には次のことが当てはまるように思えます。

  1. 完了に依存するステージが実行されるCompletableFuture 前に発生するスレッド内のアクション
  2. 完了を登録するスレッド内のアクションは、完了依存ステージが実行される前に発生する依存ステージを作成します

java.util.concurrent のドキュメントには、次のようなメモがあります。

への送信前のスレッド内のアクションは、その実行が開始される前に発生Runnableします。に提出されたについても同様です。Executor CallableExecutorService

これは、future を完了するスレッドが完了依存ステージを実行するか、Executor. 一方、CompletableFuture のドキュメントを読んだ後、私はそれについてよくわかりません:

非非同期メソッドの依存完了のために提供されるアクションは、現在の を完了するスレッドCompletableFuture、または完了メソッドの他の呼び出し元によって実行される場合があります。

それは私の質問に私をもたらします:

  1. 上記の 2 つの仮定上の特性は正しいですか?
  2. で作業するときのメモリ可視性の保証の有無について、特定のドキュメントはどこかにありCompletableFutureますか?

補遺:

具体的な例として、次のコードを検討してください。

"foo"への追加list1がラムダ関数に表示されることが保証されていますか? list1への追加list2が の依存ステージに表示されることが保証されていfutureますか?

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

grails - 非同期呼び出しにより応答時間が短縮されることを証明する Grails アプリの指標

私は現在、grails 2.4.2で実行されているgrailsアプリを持っています.

私の目標は、このコードを非同期にリファクタリングすることです。これは、上記のコード スニペットが「ブロッキング」get 関数をすぐに呼び出して非同期プログラミングを使用する目的を無効にしているように見えるためです。次のオプションを検討しています

  1. Grails の約束
  2. グアバの聞き取れる未来
  3. Java 8: 完成可能な未来

私の質問は、どのオプションを検討するかということではありませんが、メトリックを測定して、非ブロッキング呼び出しを使用すると、grails Web アプリケーションにアクセスするユーザーにより良い応答時間が提供されることを示す簡単で簡単な方法があります。

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

java - CompletableFuture.supplyAsync を PriorityBlockingQueue と一緒に使用するにはどうすればよいですか?

CompletableFuture.supplyAsync を介して LinkedBlockingQueue で ThreadPoolExecutor を使用する既存のアプリケーションにプライオリティ キューを追加しようとしています。問題は、PriorityBlockingQueue の Comparator でアクセスできるタスクの優先度を割り当てる設計を思いつかないことです。これは、私のタスクが CompletableFuture によって AsyncSupply という名前のプライベート 内部クラスのインスタンスにラップされ、元のタスクがプライベート フィールドに隠されるためです。Comparator は、次のように Runnables としてキャストされたこれらの AsyncSupply オブジェクトで呼び出されます。

CompletableFuture を拡張して別のオブジェクトにラップできるようにする可能性を調査しましたが、CompletableFuture の多くはカプセル化されていて継承できません。したがって、それを拡張することはオプションのようには見えません。非常に幅広いインターフェイスを実装しているため、アダプター内にカプセル化することもできません。

CompletableFuture全体をコピーして変更する以外に、この問題に対処する方法がわかりません。何か案は?

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

java - API を定義するときに CompletableFuture または Future を返す必要がありますか?

CompletableFutureJava 8 では、インターフェイスまたは抽象クラスは、返す代わりに返すAPI を定義する方が良いFutureですか? への変換が醜いことFutureCompletableFutureと、呼び出し元が関数型スタイルを直接使用する柔軟性を高めるという事実を考慮するCompletableFutureと、API が単に を返す正当な理由は何Futureでしょうか?