Как работает Event Loop
Python
Middle
Без компании
Как работает Event Loop
Ответы
Event Loop — это механизм, который позволяет Python (в частности, asyncio) выполнять асинхронные операции, управляя выполнением корутин и переключаясь между ними при ожидании I/O.
**Основные принципы:**
- **Цикл событий** постоянно проверяет очередь задач (event queue).
- При **await** текущая корутина приостанавливается, и Event Loop переключается на другую задачу.
- Когда I/O операция завершается (например, ответ от сервера), Event Loop возобновляет ожидающую корутину.
**Пример:**
```
import asyncio
async def task(name, delay):
print(f"{name} started")
await asyncio.sleep(delay) # Неблокирующая задержка
print(f"{name} finished")
async def main():
await asyncio.gather(
task("A", 2),
task("B", 1),
)
asyncio.run(main())
```
**Вывод:**
```
A started
B started
B finished (после 1 сек)
A finished (после 2 сек)
```
Event Loop эффективно управляет множеством задач без блокировки потока.