Встречается на собеседованиях • сегодня
В каком случае Event Loop в asyncio может быть заблокирован
Event Loop в asyncio может быть заблокирован, если внутри корутины выполняется синхронный (блокирующий) код, который не отдает управление обратно в цикл событий. Это приводит к "зависанию" всего приложения.
Основные причины:
- Долгие CPU-bound операции (например, сложные вычисления без
await). - Синхронные I/O операции (чтение файлов, сетевые запросы через
requestsвместоaiohttp). - Использование
time.sleep()вместоasyncio.sleep().
Пример блокировки:
python
import asyncio
async def blocking_task():
# Синхронный sleep блокирует event loop
time.sleep(5) # Неправильно!
# await asyncio.sleep(5) # Правильно
async def main():
await asyncio.gather(
blocking_task(),
asyncio.sleep(1) # Эта задача не выполнится вовремя
)Решение: использовать await для асинхронных операций или выносить блокирующий код в отдельные потоки через loop.run_in_executor().

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы