Чем Future отличается от Coroutine?
В asyncio в Python есть три ключевых понятия, которые часто путают: Coroutine, Task и Future.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
В asyncio в Python есть три ключевых понятия, которые часто путают: Coroutine, Task и Future.
Читать ответВ Python корутины внутри одного потока обычно выполняются последовательно, переключаясь в моменты ожидания (await).
Читать ответОбмен данными между генератором и корутиной в Python осуществляется с помощью методов yield и send().
Читать ответВ asyncio переключение задач (корутин) происходит при встрече точки ожидания (await), где корутина приостанавливается, позволяя планировщику событий (event loop) переключиться на выполнение другой корутины.
Читать ответКорутину в программировании можно отличить от обычной функции по нескольким признакам:
Читать ответВ asyncio исключение, возникшее в одной корутине, не останавливает автоматически выполнение других корутин.
Читать ответВ модуле AsyncIO в Python createtask и await выполняют разные функции, связанные с асинхронным выполнением кода:
Читать ответКорутины по своей сути выполняются в одном потоке.
Читать ответВ библиотеке asyncio в Python корутины выполняются в рамках одного потока, то есть по умолчанию используется один поток.
Читать ответВ Python с использованием asyncio порядок вызова createtask и await влияет на то, когда именно создаётся и запускается асинхронная задача, а также на последовательность логирования и выполнения кода.
Читать ответEvent Loop постоянно проверяет, какие корутины готовы к выполнению (например, когда завершена операция ввода-вывода), и возобновляет их работу.
Читать ответДля настройки корутин необходимо добавить соответствующую зависимость в build.gradle файл.
Читать ответ