問題タブ [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.
c++ - std :: async --std :: launch :: async | std :: launch :: deferred
次のパラメータで何が行われるかを理解してstd::async
います。
std::launch::async
std::launch::deferred
しかし、どうなるのstd::launch::async | std::launch::deferred
でしょうか?
java - 非同期リクエストのスレッド ステータス
@async 呼び出しを行い、Future 型フィールドの値を取得すると、Spring でスレッドがどうなるかを知りたいです。その間、スレッドはアイドル状態ですか?
よろしくお願いします、ゴンザ。
java - Future.cancel(boolean) メソッドのユーティリティ
私は単に java.util.concurrent パッケージを調べていました。
クラス「Future」にはメソッドboolean cancel(boolean mayInterruptIfRunning)があることがわかりました
私が書いたテストコードを添付してください:
最初は、タスクをキャンセルすると実行中のスレッドの実行も停止すると想定していました(「OUCH」部分は含まれていません)。しかし、次のような出力が得られました。
stackoverflow自体をさらに読むと、次のように言われました
- 「キャンセル」メソッドは、「開始されていない」ジョブのみを停止できます (メソッドの API 記述と矛盾します)。
- cancel メソッドは、run() メソッドから戻らなければならない実行中のスレッドを単純に中断します。
したがって、「OUCH」部分を含めました-中断をチェックするwhileループ;出力は次のとおりです。
質問 :
実行中のスレッドを停止するために「OUCH」部分に類似したものを書くことになっている場合、キャンセルメソッドのユーティリティ/価値は何ですか。キャンセルでスレッドを停止できない場合、FutureTask で Callable をラップするとどのように役立ちますか? 私が見落としている設計/概念/論理的な部分は何ですか?
scala - AkkaFuturesを使用した並列乱数生成
私はAkka2Futuresで構築されたCPUを集中的に使用するアプリケーションを作成しています。現在、アクターは必要ありませんが、使用することに抵抗はありません。
先物で囲まれたいくつかの計算では、非常に頻繁にランダムジェネレーターを呼び出す必要があります。従来の同時RNGを使用すると、それがチョークポイントになり、スケーラビリティが失われるのではないかと心配しています。
スレッドごとにランダムジェネレーターを使用する最も高速で簡単な方法はExecutionContext
何ですか?
実験を繰り返すなど、それらすべてを異なるシード(ただし事前にわかっている)で初期化する方法はありますか?
java - future.isDone はタスクが完了しても false を返します
スレッドが完了しても、私はトリッキーな状況を抱えていfuture.isDone()
ます。false
私が呼び出すfuture.isDone()
と、trueが返されますfalse
が返されcoundownLatch.await()
ます。何か案が?また、これが発生するとすぐに countDownLatch.await が出てくることに注意してください。
ここで読み取り不可能な形式のビューを見つけた場合は、http://tinyurl.com/7j6cvep .
c# - C# async と Java ExecutorService の違い
C# にはクールな新機能があります
しかし、それは同等ではありません
Java では、タスクを実行するスレッドプールをより柔軟に選択できます。
待つのはどうですか?get を呼び出すだけです
のようです
C# には他に何かあるのでしょうか、それとも Java バージョンの構文糖衣に過ぎないのでしょうか? (私は C# の第一人者ではないので、何か不足している可能性があります)。
java - Java スレッドプールの奇妙な動作 - Future を使用しないとタスクが失われる
スレッドプールを作成していますが、スレッドからの出力は必要ないため、Futures&Callables は使用していません。しかし問題は、Futures を使用しない場合、スレッドプールが送信中のタスクを失っていることです。
これがタスクを失っている私のコード構造です-
Worker() 内で、run() 実装の最初の行に「got work」と出力しています。
上記のコードを実行すると、「取得した作業」の数は常に「提出された作業」よりも少なくなります。
しかし、コード構造を以下に変更すると、
次に、「作業を取得した」回数と「作業を送信した」回数が等しいことがわかります
これは、私が Futures&Callables を使用していない限り、スレッドプールが私が提出しているタスクを使用していると私に信じさせます。
そのような行動を見たことがありますか?これをデバッグするより良い方法はありますか?
scala - タイムアウトがある場合、Akkafuture.awaitは返されません
私はAkkaを初めて使用し、Akka1.2でのFuture.await呼び出しに問題があります。OnTimeoutハンドラーとOnExceptionハンドラーを使用していくつかのFutureを作成し、それらが完了するのを待っています。コードは次のようになります。
例外があると、例外ハンドラーが実行され、「Gothere」行に移動します。ただし、タイムアウトが発生した場合、タイムアウトハンドラーは実行されますが、「Gothere」の行に到達することはありません。AtMost値が設定されていても、awaitは戻りません。
これを引き起こしている可能性がありますか?
c++ - for ループ/for_each の各反復を並列に実行できますか? (C++11)
構造体のベクトルを繰り返し処理し、各構造体を個別に処理しています。
次のようになります。
DoTask は特定の Web サイトに接続して HTML を分析するため、コードは非常に遅くなります。
これをスピードアップするための最良の方法は何でしょうか?
私の目標は、複数の DataT を同時に分析することです。
私はスレッド化に非常に慣れていませんが、std::asyncとstd::futureは有望に見えます。
c++ - std :: asyncを独自のバージョンに置き換えますが、std :: promiseはどこに存在する必要がありますか?
私はvc2011を使用していますが、std :: async(std :: launch :: async、...)は少しバグがあります(新しいスレッドを生成せずに並行して実行する場合がありますが、代わりにスレッドを再利用しますタスクを次々に実行します)。高価なネットワーク通話をしているときは、これは遅すぎます。だから私は自分の非同期関数を書くと思いました。私は立ち往生していますが、std :: promiseはどこに住むべきですか?1)スレッド関数、2)非同期関数、または3)呼び出し元関数。
コード:
std :: promiseが非同期関数よりも長生きする必要がある(そしてスレッドが存続する限り存続する)必要があるという事実を乗り越えることができないようです。そのため、promiseは非同期関数のローカル変数として存続できません。ただし、呼び出し元は先物について知っているだけでよいため、std::promiseは呼び出し元のコードにも存在しないはずです。そして、非同期がスレッド関数を呼び出す前にfutureを返す必要があるため、promiseをスレッド関数で有効にする方法がわかりません。私はこれに頭を悩ませています。
誰かアイデアがありますか?
編集:トップコメントが少し誤解されているので、ここでこれを強調しています。std :: asycnのデフォルトは遅延モードであることが許可されていますが、std :: launch :: asyncの起動ポリシーが明示的に設定されている場合、スレッドが生成されて一度に実行されるかのように動作する必要があります(enの文言を参照) .cppreference.com / w / cpp / thread / async)。これがvs20011で見られる動作ではない1つのケースについては、pastebin.com/5dWCjjNYの例を参照してください。このソリューションはうまく機能し、実際のアプリケーションを10倍高速化しました。
編集2:MSがバグを修正しました。詳細はこちら:https ://connect.microsoft.com/VisualStudio/feedback/details/735731/std-async-std-launch-async-does-not-behave-as-std-thread