問題タブ [concurrent.futures]
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.
asynchronous - スレッドによる Future の処理方法
Web ドメインでは、非同期操作またはノンブロッキング操作という用語をよく耳にします。通常、時間のかかる操作をコールバックを含む Future としてカプセル化することにより、スレッドはブロックされず、コールバックが返されたときに通知されると言われています。
Future オブジェクトの操作を呼び出し、コールバックが返されたときに通知を受けることは、Web アプリケーション コンテキストの内部でどのように機能するのでしょうか?
ありがとう!
java - Futures.transform では、Function と AsyncFunction の使用の違いは何ですか?
Function の apply メソッドはオブジェクトを同期的に返し、AsyncFunction の apply メソッドは非同期的に実行されて Future を返すことを知っています。
いつ何を好むかの例を教えてください。
私が見た 1 つのコード スニペットは、次のようなものでした。
AsyncFunction 内の値はすぐに結果として返されるのに、なぜここで AsyncFunction が必要なのですか? それとも、これは私が遭遇した単なる悪い例ですか?
python - 複数のコアで Python スレッドを実行する
Python 2.7 では、異なるコアで複数のスレッドを実行することが許可されていないことを知っていますmultiprocessing
。また、ある程度の同時実行を実現するには、モジュールを使用する必要があります。concurrent.futures
Python 3.4のモジュールを見ていました。を使用するThreadPoolExecutor
と、異なるプロセスで異なるスレッドを実行できますか、それとも GIL の制約によってまだ拘束されていますか? そうでない場合、Python 3.4 を使用して異なるプロセッサでスレッドを実行する方法はありますか?
私のユースケースでは、複数のプロセスを使用することは絶対に不可能です。
scala - Scala Futures: 新しく作成された、またはマップされた例外ごとのデフォルトのエラーハンドラー
デフォルトの onFailure ハンドラで Future{...} ブロックを常に作成する可能性はありますか? (例: スタックトレースをコンソールに書き込みます)? このハンドラーは、マップされた先物にも自動的にアタッチする必要があります (既にデフォルトの失敗ハンドラーを持っている先物でマップを呼び出すことによって作成された新しい先物)
詳細については、こちらの私の質問も参照してください: Scala on Android with scala.concurrent.Future do not report exception on system err/out
誰かが onFailure または sth を返された未来で使用しない場合、「最後の手段」の例外ログ コードが必要です。
python - Pythonのマルチプロセッシングとconcurrent.futuresの違いは何ですか?
Python でマルチプロセッシングを実装する簡単な方法は次のとおりです。
先物に基づく代替実装は
if __name__ == '__main__'
両方の選択肢は本質的に同じことを行いますが、顕著な違いの 1 つは、通常の句でコードを保護する必要がないことです。これは、先物の実装がこれを処理するためですか、それとも別の理由がありますか?
multiprocessing
より広い意味で、との違いは何concurrent.futures
ですか? どちらが優先されるのはいつですか?
編集:ガードはマルチプロセッシングにのみ必要であるという私の最初の仮定if __name__ == '__main__'
は間違っていました。どうやら、Windows の両方の実装でこのガードが必要ですが、UNIX システムでは必要ありません。
python - Python 3.4 の concurrent.futures.Executor は、スレッドを一時停止および再開するための制御を提供しません。
マルチスレッド用にconcurrent.future.ThredPoolExecutorを使用しています。いくつかのhttpサービスを実行しています。サーバーがダウンしたときに実行を一時停止し、サーバーを起動してから実行を再開するようにスレッドを制御したかったのです。
サーバーがダウンするトリガーは、特定の場所でファイルが利用可能かどうかを確認しているため、実行を一時停止する必要があります。
そのため、concurrent.futures.Executor.shutdown() は、現在保留中のフューチャーの実行が完了したときに、使用しているすべてのリソースを解放する必要があることをエグゼキューターに通知します。
しかし、executor の shutdown() メソッドを使用すると、すぐにスレッドをシャットダウンするのではなく、実行全体が終了した後に shutdown() を呼び出します。
実際、concurren.future で一時停止と再開が見つからなかったため、shutdown() メソッドを呼び出しています。別の方法として、スレッドの実行が終了したら、リストから URL を削除しています。残りのリストを渡して同じメソッドを呼び出すことができるようにします。
コードは次のとおりです。
python - Pythonでのconcurrent.futuresのasyncとrequests-futuresのasyncの違いは何ですか?
requests-futures を使用して Web ページを非同期に取得しました。また、私のマシンにはマルチコアがあるため、多くの Web サイトを同時に取得したいので、concurrent.futures を使用しようとしましたが、concurrent.futures も非同期メソッドを提供しているようです。違いは何ですか?は、concurrent.futures の async と requests-futures の async の間ですか?それらが同じ場合、requests-futures を非推奨にすることができますか?
python - Python 3のconcurrent.futures:失敗した未来をThreadPoolExecutorに戻す方法は?
私は、concurrent.futures の ThreadPoolExecutor を介してダウンロードする URL のリストを持っていますが、最初の試行がすべて終わった後に再ダウンロードしたいタイムアウト URL がいくつかあるかもしれません。私はそれを行う方法がわかりません、ここに私の試みがありますが、無限の印刷「time_out_again」で失敗しました:
それで、この問題を解決する方法はありますか?