multiprocessing.Pool.apply_async
私はそれが未来を返すことを期待していました。残念ながらそれはコールバックに基づいているようです。将来のマルチプロセッシングから.Pool.apply
は今、私はmultiprocessing.Pool.apply
を呼び出すしたいと思いますが(それは非同期に処理されますので)それが将来に包まれている場合、これは何とか可能ですか?
multiprocessing.Pool.apply_async
私はそれが未来を返すことを期待していました。残念ながらそれはコールバックに基づいているようです。将来のマルチプロセッシングから.Pool.apply
は今、私はmultiprocessing.Pool.apply
を呼び出すしたいと思いますが(それは非同期に処理されますので)それが将来に包まれている場合、これは何とか可能ですか?
クラスmultiprocessing.Pool
クラスは、Process Based Poolの古いPython実装です。これはconcurrent.futures
モジュールの前に設計されています。
apply_async
メソッドは、Future
と同様に動作するApplyResult
オブジェクトを返します。
Future
オブジェクトに固執する場合は、concurrent.futures.ProcessPoolExecutorという名前を使用する必要があります。この名前はプロセスベースです。したがって、GILの影響を受けません。
あなたは、このような初期化機能やタイムアウトのサポートなど、より高度な機能が必要な場合は、Pebbleを見てすることができます。
代わりにconcurrent.futuresプールを使用することを検討しましたか? – noxdafox
AFAIKこれはGILに準拠する必要があることを意味します。 – abergmeier