問題タブ [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 に答える
3890 参照

java - ExecutorService:Callableが実行されているかどうかを確認する方法は?

を使用してExecutorService複数のスレッドからのタスク要求を処理し、Futureから返されたを使用しExecutorService#submit()てタスクの進行状況を追跡しています。

しばらくしてからリクエストがまったく処理されていない場合は、リクエストを削除して、リクエスターにフィードバックを送りたいと思います。

そのため、タスクリクエストが現在処理されているかどうかを知りたいのですが、処理されている場合は、タスクリクエストが完了するのを待つか、それ以外の場合はキャンセルしてリクエスターにフィードバックします。

ヘルプやヒントをいただければ幸いです。ありがとう!

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

timeout - Akka での Future のタイムアウト

ポートフォリオと証券 (その内部) を異なるアクターで処理するサーバーがあります。証券の数が少ない (<20) ポートフォリオの場合、これはうまく機能します。セキュリティ カウントの数を 1000 に増やすと、次の問題が発生しました。

akka.dispatch.FutureTimeoutException: [5000] ミリ秒後に先物がタイムアウトしました

akka config内のタイムアウトを増やすことでこのエラーを回避できますが、それは正しいことですか? 1.2 より前のバージョンの akka では、アクター内で self.timeout を設定できましたが、これは非推奨です。

私が (断続的に) 直面したもう 1 つの問題は、ポートフォリオ アクター内の futures.map コードに参加しているときにサーバー全体がハングすることです。

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

java - Callable 実行中の例外

私は次の Callable を持っています:

今、私はそれを実行しています:

コードのどこかで何らかの操作を実行するために、送信を一種の hashMap に保存しています。

worker.call()関数で例外が発生したかどうかを知るにはどうすればよいですか?

submit.isCancelled()何らかの例外が発生した場合は true を返し、すべてが正常に機能した場合は false を返しますか?

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

clojure - 実行せずに Clojure future を作成する

以下を含む基本的な Clojure スクリプトがあります。

ただし、ファイルを次のように実行すると:

すると画面いっぱいに「Running」と表示されます。未来が望むときに実行されるようにするにはどうすれば変更できますか?

注:これは永遠に実行されることを認識しています。これは私の問題の単なる例です。

0 投票する
3 に答える
7748 参照

concurrency - Guava ListenableFuture および Futures.chain() メソッドの使用方法

Guava 同時実行ライブラリの使用方法を学ぶ必要がある宿題があります。

タスクにはいくつかのスレッド プールがあり、それぞれが個別のオブジェクトによって制御されます。

各プールには、単純なタスクを実行するいくつかの作業スレッドがあり (ほとんどの場合、 を使用して何かThread.sleep(long)をエミュレートします)、これらの単純なタスクはすべて、メッセージボードをエミュレートするコンテナー オブジェクトに格納されます。

各単純タスクには他のタスクの依存関係リストがあり、それらのタスクがすべて完了するまで実行できません。

ListenableFutureとを使用して Guava ライブラリを利用するにはどうすればよいFutures.chain()ですか?

オンラインで広範なサンプルコードを検索しましたが、使用方法を理解しているものは見つかりませんでした。

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

multithreading - GuavaListenableFutureはどのようにできますか wait for information from a Stack?

I have a private Stack S which is filled with objects from out-side of the class (using methods). A ListenableFuture should read the stack and retrieve an Object

I have a private Stack S which is filled with objects from out-side of the class (using methods). A ListenableFuture should read the stack and retrieve an Object from it, but if the stack is empty it should wait for an object to be inserted to the stack and then retrieve it. I'm not sure how to implement this.

My idea was to use Wait / Notify for the ListenableFuture but is this correct logic (working with Guava)? What other options do I have?

Thanks in advance, Guy


You should use something like :

(The second line returns what you want but I definitely advice you to create a method in the model)

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

java - newFixedThreadPool が必要以上のタスクを作成する

N 個のスレッド (たとえば 50 個のスレッド) を作成するメソッドがあります。これらの作成されたスレッドは、 で新しいスレッドを作成しExecutors.newFixedThreadPool(20)ます。その50 * 20 = 1000ため、アプリケーションの実行中にスレッドが作成された可能性があります。しかし、実際の状況では、スレッド数は 10000 以上になる場合があります。これを修正する方法は?私は何を間違っていますか?

スレッドを作成して Future リストに追加するコードの一部を次に示します。

これは、Future を使用しているために発生したのでしょうか。またはなぜですか?スレッド数が制御不能なのはなぜですか? そのため、メモリ不足の例外があり、スレッド数は無制限のようです。また、スレッドがプールで待機している場合、プールで待機しているスレッドがそれほど多くのメモリを使用しないことがわかっているため、各スレッドにこれほど多くのメモリが割り当てられるのはなぜですか。

前後の画面は次のとおりです。 前 後

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

jboss - @Asynchronousメソッドの結果を待っているJBoss 6ソケットタイムアウト

非同期メソッドを含むステートレス EJB-3.1 セッション Bean があります。非同期メソッドは、高価な処理を行い、クライアントに未来を返します。これにより、準備ができたら処理結果を表示できます。

この Bean は JBoss 6 インスタンスで実行され、Swing クライアントからリモートで呼び出されます。

通常、処理は正常に終了しますが、一部の計算は終了までに 300 秒以上かかります。

これらの計算では、JBoss ソケット タイムアウトにより、クライアントは、termination.get() を呼び出したときに計算結果ではなく ExecutionException を受け取ります。

残念ながら、@Asynchronous アノテーションには構成オプションがありません。

私の質問は、クライアントサーバー通信ソケットのタイムアウトをどのように増やすことができるか、そして非同期メソッドの呼び出し中に確立された接続に対してのみ可能な場合です。

ありがとう、トーマス

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

java - ブロックせずに複数の先物リストを組み合わせるakka

この質問は、akka Futures に精通している方にはおそらく比較的基本的なものなので、ご容赦ください。

次の構造に従って akka アクターの階層があると仮定します。

そして、BigBoss 以外のそれぞれが Status ラッパーに内部状態を持っていると仮定します。

BigBoss がList<Status>すべての子孫から を取得したい場合は、次の方法であることがわかります。

そして、最初のメッセージがワーカーにまで伝搬された後、ワーカーがマネージャーに次のように返信しているのがわかります。

マネージャーは、これらの多くが戻ってきて、それらを将来のリストとしてエグゼクティブのリストに入れたいと考えています。上記の返信は、次のものに対するものです。

上記のシーケンスは、最初に Future をFuture<List<Object>>(実際にはステータスを含む) に変換します。

だから、これは私にとって少し毛むくじゃらになり始めるところです.

ExecutiveActor は次のようにしました。

それでは、最後に - 私の質問 -

  1. BigBoss が最終的に Await を呼び出すまで、ブロックせずに上記Future<Future<List<Object>>を aに減らすにはどうすればよいですか?Future<List<Object>>

  2. オブジェクトを使用するのではなく、これを通して Status タイプを保持する方法はありますか? UntypedActor が明示的な型指定された応答を送信できないことは知っていますが、おそらくこれを表現するよりクリーンな方法はありますか?

  3. 私が考えていない、これ以上のエレガントなアプローチはありますか? Sequence を使用するのが早すぎましたか、それともまったく使用すべきではありませんでしたか?

私は (明らかに) Java を使用しています - TypedActors を使用したくないのですが、すべてのフィードバックを歓迎します!

お時間をいただきありがとうございました-

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

asynchronous - 非同期 EJB を最大 X 秒待機

EJB私は4秒を呼び出す「クライアント」を持っており、Asynchronous EJB実行するのに5秒すべてを与える必要があります。5 秒後、「クライアント」EJB は、Future実行を終了したオブジェクトから準備完了の結果を収集し、出力を返します。

クライアント部分の「待機」に問題があります。タイムアウト後にfuture.get(5, TimeUnit.MILLISECONDS) async が実行されることがあるようEJBです。それを行う正しい方法はありますか?

Future1)でオブジェクトを収集しMapます。

Future2)次に、オブジェクトからタイムアウトで出力を取得します

ありがとうございました