Ответ 1
Документация asyncio
описывает различия:
class
asyncio.Future(*, loop=None)
Этот класс почти совместим с
concurrent.futures.Future
.Отличия:
result()
иexception()
не принимают аргумент тайм-аута и создают исключение, когда будущее еще не выполнено.- Обратные вызовы, зарегистрированные с помощью
add_done_callback()
, всегда вызываются через циклы событийcall_soon_threadsafe()
.- Этот класс не совместим с функциями
wait()
иas_completed()
в пакетеconcurrent.futures
.Этот класс не является потокобезопасным.
В принципе, если вы используете ThreadPoolExecutor
или ProcessPoolExecutor
или хотите использовать Future
напрямую для concurrency на основе потоков или процессов, используйте concurrent.futures.Future
. Если вы используете asyncio
, используйте asyncio.Future
.