問題タブ [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.
scala - Scala Futureブロックスレッドを待機しますか?
Scala Futureの結果を待つとき、それは受信のように、または反応のように動作しますか?つまり、スレッドをブロックしますか、または可能な場合は結果の後に継続をスケジュールしますか?
java - Java で Futures の ID を取得する
次のコードがあります。
コードで指摘されているように...どの Future がタイムアウトしたかを知るにはどうすればよいですか?
ありがとう
scala - Scala Futuresで例外を処理するには?
futures (scala.actors.Futures) 内でサブジョブを処理する単純なジョブ プロセッサを実装しました。これらの先物自体は、サブジョブを処理するためのより多くの先物を作成できます。ここで、これらのサブジョブの 1 つが例外をスローした場合、ジョブ プロセッサがそのジョブのエラー メッセージで応答するようにします。失敗したサブジョブを発見するための回避策がありますが、それが最善の解決策かどうかはわかりません。基本的には次のように機能します。
最上位の結果は、再帰的な Lists of Lists... of JobResults のリストです。リストで失敗した結果を再帰的に検索し、結果の種類に応じてエラーまたは結合された結果を返します。それは機能しますが、先物で例外を処理するためのよりエレガントで簡単なソリューションがあるかどうか疑問に思っていますか?
java - Future.cancelとReentrantLocks
シナリオ
私はこのクラスを持っています。たとえばFoo
、その唯一の仕事は一連のタスクを順番に実行することです。シンプルに聞こえますよね?これらのタスクはすべて、独自の個別のスレッドで実行されます。Thread.join()
順次実行を確実にするために各タスクを単に呼び出す代わりに、それはとを使用ReentrantLock
しCondition
ます。例えば、
すべてのタスクの後に、waitForNotification()
が呼び出され、別のクラス、たとえばBar
、それをウェイクアップするのを待ちます。の唯一の仕事は、タスクが成功したか失敗しBar
たかをアプリケーションに通知する応答を処理することです。そうは言っても、次の2つのいずれかを実行します。
- スレッドを完全にキャンセル
getTask().cancel
します(つまり) - スレッドをウェイクします(つまり
getCondition().signal
)
アイテム2は問題なく機能しますが、アイテム1は機能しません。例えば、
スレッドをキャンセルする代わりに、スレッドを中断しているように見えるためFoo
、実行が続行されます。冗長性については申し訳ありませんが、私は皆さんに明確な画像を提供したいと思いました。助言がありますか?
java - JavaFuturesからの異常なリターン
Java Futures()を使用して複数の同様のプロセス(SIMD)を実行するために私が思いつくことができる唯一のモデルjava.util.concurrent.Future<T>
は、次のとおりです。
このモデルの問題は、ジョブ0の完了に長い時間がかかるが、ジョブ1、2、および3がすでに完了している場合、for
ループはジョブ0からの戻り値の取得を待機することです。
まだ準備ができていない場合は、電話をかけたり、ビジーウェイト(または電話)をしたりFuture
せずに、各結果が利用可能になったときに各結果を取得できるモデルはありますか?Future.isDone()
Thread.sleep()
scala - Scala での複数の Future の奇妙なケース
これらの Future 関連のクラスと Scala のトレイトの関係は何ですか? また、それらが異なるパッケージに散らばっているのはなぜですか?
私はそれらを見つけました:
それらは大きく異なるものですか、それとも統合できない別の理由がありますか?
どちらか一方をいつ使用するかを示す良い例はありますか?
編集:各クラス/特性/オブジェクトの機能と、それらの存在を正当化する方法/それらがどのように役立つかを説明するための報奨金。
c++ - 「先物」または類似のパラダイムを使用した C++ 同時実行ライブラリの開発
スレッドプールで多くのジョブを実行する必要がある C++ プロジェクトに取り組んでいます。ジョブは失敗しやすいため、各ジョブが完了後にどのように終了したかを知る必要があります。ほとんどの部分で Java プログラマーである私は、Java の util.concurrent パッケージのさまざまなクラスに似た、「フューチャー」または同様のパラダイムを使用するという考えが好きです。
2 つの質問があります。1 つ目は、C++ 用にこのようなものが既に存在しますか (Boost には何も見つかりませんでしたが、十分に調べていない可能性があります)。第二に、これは C++ の正気な考えですか?
ここで達成しようとしていることの簡単な例を見つけました:
http://www.boostcookbook.com/Recipe:/1234841
このアプローチは理にかなっていますか?
multithreading - Linux 2.6+ でのシステム コール (syscalls) の置き換え
この分野では活発な作業がないように思われるため、ユーザーランド スレッド ライブラリの作成を検討しています。C++0x の約束と未来がこのモデルに力を与える可能性があると思います。残念ながら、このモデルを機能させるには、ブロッキング呼び出しでコンテキスト スイッチを確実に切り替えることが不可欠です。そのため、非同期バージョンに置き換えるために、すべてのシステムコールをインターセプトしたいと考えています。いくつかの注意事項があります:
- ほぼすべての通常のシステムコールに非同期システムコールがあることは知っていますが、下位互換性の理由から、これは実行可能なソリューションではありません。
- Linux 2.4 以前では sys_call_table を直接変更することができましたが、これはなくなりました。
- 必要に応じてライブラリを静的にリンクしたいので、LD_PRELOAD トリックは実行できません。
- 同様に、これはユーザーランド ライブラリであると想定されているため、カーネル モジュールはオプションではありません。
- 最後に、同様の理由で ptrace() もオプションではありません。使用するためだけにライブラリに新しいプロセスをフォークさせることはできません。
これは可能ですか?
c# - 私の一般的な Future 実装には Completed イベントが必要ですか?
私はFuture<T>
値を非同期的に取得することをカプセル化する汎用クラスを作成していますが、Web 上のほとんどの既存の実装には次のような契約があることに気付きました。
これにより、すぐに実装に Completed イベントを追加したくなります。これにより、値を非同期で取得し、いつ完了したかを知りたいときに値をポーリングする必要がなくなります。Parallel Programming ライブラリがこのように先物を実装していることに気付きましたが、なぜ多くの実装にこのイベントがないのか興味がありました。何か不足していますか?Futures には Completed イベントが必要ですか? それとも、あなたの文脈に依存しているだけですか?
c++ - set_value() を逆にして promise を「非アクティブ化」するにはどうすればよいですか?
ここで同期についてまったくn00bの質問があります。私は、反復ごとにプロミスに異なる値「p」を割り当てる「ライター」スレッドを持っています。この値の shared_futures を待ってから処理する「リーダー」スレッドが必要です。私の質問は、future/promise を使用して、リーダー スレッドが「p」の新しい更新を待ってから処理タスクを実行するようにする方法です。各反復?どうもありがとう。