この質問の理由を明らかにするには:
同じ名前の2つのモジュールを使用すると混乱します。それらを区別するためにそれらは何を表していますか?
一方が解決できるタスクと他方が解決できないタスク、またはその逆のタスクは何ですか?
asyncio
documentation は違いをカバーしています:
クラス
asyncio.Future(*, loop=None)
このクラスは_
concurrent.futures.Future
_とほぼ互換性があります。違い:
result()
とexception()
はタイムアウト引数を取りません。将来がまだ完了していない場合は、例外が発生します。add_done_callback()
で登録されたコールバックは、常にイベントループのcall_soon_threadsafe()
を介して呼び出されます。- このクラスは、_
concurrent.futures
_パッケージのwait()
およびas_completed()
関数と互換性がありません。このクラスはスレッドセーフではありません。
基本的に、ThreadPoolExecutor
またはProcessPoolExecutor
を使用している場合、またはスレッドベースまたはプロセスベースの同時実行性のためにFuture
を直接使用する場合は、_concurrent.futures.Future
_を使用します。 asyncio
を使用している場合は、_asyncio.Future
_を使用します。
docs から:
[
asyncio
は] concurrent.futuresモジュールのクラスを模倣するが、イベントループでの使用に適合したfutureクラスを提供します。