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

В чем главная проблема Python в контексте асинхронности

Главная проблема Python в асинхронности — это блокирующие вызовы (CPU-bound операции или синхронный I/O), которые могут заморозить весь event loop. Python использует кооперативную многозадачность, где корутины добровольно отдают управление, но если одна корутина выполнит блокирующую операцию, весь цикл событий остановится.

Пример проблемы:

python
import asyncio

async def blocking_operation():
    # Синхронный sleep блокирует event loop
    time.sleep(2)  # Ошибка: использует синхронный sleep вместо await asyncio.sleep(2)

async def main():
    await asyncio.gather(
        blocking_operation(),
        asyncio.sleep(1)
    )

asyncio.run(main())  # Второй sleep не начнется, пока не завершится первый

Решение — использовать:

  1. await для асинхронных операций
  2. Потоки (run_in_executor) для CPU-bound задач
  3. Нативные асинхронные библиотеки (aiohttp вместо requests)

Также GIL ограничивает параллелизм для CPU-bound задач даже в asyncio.

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

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

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

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