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

Как работает Asyncio

Asyncio — это библиотека Python для асинхронного программирования, основанная на концепции событийного цикла (event loop). Она позволяет писать конкурентный код с использованием корутин (coroutines) и ключевых слов async/await.

Основные компоненты:

  • Event Loop — управляет выполнением задач и обрабатывает события (I/O, таймеры и т.д.).
  • Корутины — функции, объявленные через async def, которые могут приостанавливать выполнение через await.
  • Future/Task — объекты, представляющие результат асинхронной операции.

Пример:

python
import asyncio

async def fetch_data():
    print("Начало загрузки")
    await asyncio.sleep(2)  # Имитация I/O операции
    print("Данные загружены")
    return "Результат"

async def main():
    task = asyncio.create_task(fetch_data())
    print("Задача создана")
    result = await task
    print(f"Получено: {result}")

asyncio.run(main())

Как работает:

  1. asyncio.run() запускает событийный цикл.
  2. create_task() добавляет корутину в цикл как Task.
  3. При await управление возвращается в цикл, пока операция не завершится.
  4. Цикл выполняет другие задачи во время ожидания.

Плюсы:

  • Эффективность для I/O-bound задач.
  • Читаемость кода (по сравнению с колбэками).

Минусы:

  • Не подходит для CPU-bound операций (нужен multiprocessing).
  • Требует поддержки асинхронных библиотек (например, aiohttp вместо requests).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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