49

この質問の理由を明確にするために:

  1. 同じ名前の 2 つのモジュールを使用すると混乱します。それらを区別するものは何を表しているのでしょうか?

  2. 一方が解決できて他方が解決できない、またはその逆のタスクは何ですか?

4

2 に答える 2

23

asyncioドキュメントは違いをカバーしています:

クラスasyncio.Future(*, loop=None)

このクラスは とほぼ互換性がありconcurrent.futures.Futureます。

違い:

  • result()またexception()、timeout 引数を取らず、future がまだ完了していない場合に例外を発生させません。
  • に登録されたコールバックadd_done_callback()は、常にイベント ループの を介して呼び出されますcall_soon_threadsafe()
  • このクラスは、パッケージ内のwait()およびas_completed()関数と互換性がありません。concurrent.futures

このクラスはスレッドセーフではありません。

基本的に、 または を使用しているThreadPoolExecutor場合、またはをスレッドベースまたはプロセスベースの同時実行に直接ProcessPoolExecutor使用したい場合は、 を使用します。を使用している場合は、 を使用してください。Futureconcurrent.futures.Futureasyncioasyncio.Future

于 2015-04-27T18:36:27.540 に答える