問題タブ [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.
java - completableFuture が失敗した場合にログに記録する方法は?
私はこの方法を持っています:
さまざまなクラスで広く使用されていますが、現在、計算が失敗した場合のデフォルトのログ記録はありません。私の最初のアプローチは次のとおりです。
しかし、私は何かを返さなければならないので、この方法は回復を目的としています。単にログに記録したい場合はどうすればよいですか?
java-8 - Akka アクターと Java8 CompletableFuture を安全に組み合わせることができますか?
私が Akka のドキュメントを理解している限り、Akka ActorSystem にはアクターを実行するための独自のスレッド プールが含まれています。私は、Java8 フューチャーも使用する Java アプリケーションで Akka を使用しています。後者は ForkJoinPool.commonPool() によって実行されます。したがって、アクターと先物は異なるプールを使用し、2 つのスケジューラーに隠された特定の仮定を無効にする可能性があります (たとえば、Akka スケジューラーは先物が Akka プールで実行されると想定する場合があります)。これにより、パフォーマンス上の問題が発生する可能性はありますか?
java - RxJavaでタイムアウト時にタスクをキャンセル
RxJava と Java 8 の CompletableFuture クラスを試していますが、タイムアウト条件を処理する方法がよくわかりません。
これは基本的に機能します (3 秒のタイムアウトに達すると、「タイムアウト」が発行されます)。ただし、ラップした将来のタスクをキャンセルしたいObservable
場合もあります-RxJava中心のアプローチでそれは可能ですか?
1つのオプションは、を使用して自分でタイムアウトを処理することであることは知っていますがtask.get(3, TimeUnit.SECONDS)
、RxJavaですべてのタスク処理を行うことが可能かどうか疑問に思います。
java - リストから変換CompletableFutureへ
に変換しようとしList<CompletableFuture<X>>
ていCompletableFuture<List<T>>
ます。これは、多くの非同期タスクがあり、それらすべての結果を取得する必要がある場合に非常に便利です。
それらのいずれかが失敗すると、最終的な未来が失敗します。これが私が実装した方法です:
実行するには:
それらのいずれかが失敗した場合、それは失敗します。百万の先物があっても、期待どおりの出力が得られます。私が抱えている問題は次のとおりです。5000を超える先物があり、それらのいずれかが失敗した場合、次のようになりますStackOverflowError
:
java.util.concurrent.CompletableFuture.internalComplete(CompletableFuture.java:210) でのスレッド "pool-1-thread-2611" java.lang.StackOverflowError での例外 java.util.concurrent.CompletableFuture$ThenCompose.run(CompletableFuture.java) :1487) java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:193) で java.util.concurrent.CompletableFuture.internalComplete(CompletableFuture.java:210) で java.util.concurrent.CompletableFuture$ThenCompose.run( CompletableFuture.java:1487)
私は何を間違っていますか?
注: 上記の返された Future は、Future のいずれかが失敗したときに失敗します。受け入れられた回答もこの点を取る必要があります。
java - Callable を実装するクラスから 1 つのオブジェクトを返す方法
を実装するクラスがありcallable
、呼び出し可能なクラスがタイプ のオブジェクトを 1 つだけ返すようにしますMat
。Future リストを次のように宣言しました。
しかし、私は受け取りますCannot instantiate the type Future<List<Mat>>
私が間違っていることを教えてください。
コード:
java - CompletableFuture を使用して値を返す方法
CompletableFuture
例を作成しました。?を使用して値を返す方法を知りたいです。も変更しCompletableFuture<Void> exeFutureList
ましたがCompletableFuture<Integer> exeFutureList
、Eclipseは常にVoidに戻すことを提案しています。
CompletableFuture を使用して値を返す方法を教えてください。
コード: