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

Какие знаешь особенности Asyncio

Asyncio — это библиотека для асинхронного программирования в Python, основанная на корутинах и event loop.

Ключевые особенности:

  1. Event Loop — управляет выполнением задач, переключаясь между ними при блокирующих операциях (I/O).
  2. Корутины (async/await) — функции, объявленные через async def, которые могут приостанавливаться (await).
  3. Задачи (Tasks) — обёртки вокруг корутин, планируемые в event loop.
  4. Futures — объекты, представляющие результат асинхронной операции.
  5. СинхронизацияLock, Semaphore и др. для безопасного доступа к общим ресурсам.

Пример:

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())

Нюансы:

  • Глобальный event loop (раньше был get_event_loop(), сейчас лучше asyncio.run()).
  • Блокирующий код (например, time.sleep) ломает асинхронность.
  • Осторожно с конкурентным доступом к данным.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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