Asyncio: ожидание ввода-вывода без блокировки всей задачи

Asyncio предоставляет инструменты для конкурентного выполнения асинхронного кода.

Иллюстрация к теме, а не фотография описанного события. Cromemco · CC BY-SA 4.0. Размер изменён; при показе возможно кадрирование.

Асинхронная программа может отдавать управление, пока ждёт сетевой ответ или другую поддерживаемую операцию. Цикл событий в это время обслуживает другие готовые задачи. Это полезно для приложений с большим количеством ожиданий.

Асинхронность не означает автоматическое ускорение тяжёлых вычислений. Блокирующая операция внутри такого кода способна задержать остальные задачи. Для устойчивой работы важны ограничения параллелизма, тайм-ауты и обработка отмены. Их полезно проверять на медленных ответах и обрывах соединения, а не только в благополучном сценарии.

Источники

  1. Официальная документация — Asyncio: ожидание ввода-вывода без блокировки всей задачиdocs.python.org