Встречается на собеседованиях • сегодня

За счет чего получается прирост производительности при использовании async/await в Python

Async/await в Python даёт прирост производительности за счёт неблокирующего выполнения операций ввода-вывода (I/O-bound задач). Вместо ожидания завершения операции (например, запроса к БД или HTTP-запроса), корутина освобождает поток, позволяя event loop'у выполнять другие задачи.

Пример:

python
import asyncio

async def fetch_data():
    await asyncio.sleep(1)  # Имитация I/O операции
    return "Данные"

async def main():
    task1 = asyncio.create_task(fetch_data())
    task2 = asyncio.create_task(fetch_data())
    await asyncio.gather(task1, task2)  # Выполняются конкурентно

asyncio.run(main())

Ключевые моменты:

  • Эффективен для I/O-bound задач (сетевые запросы, работа с файлами).
  • Не требует многопоточности (избегает GIL и накладных расходов на переключение потоков).
  • Event loop управляет выполнением корутин, минимизируя простои.

Для CPU-bound задач async/await не даёт преимуществ — тут лучше multiprocessing.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы