За счет чего возможна асинхронность в Python
Python
Senior
Без компании
За счет чего возможна асинхронность в Python
Ответы
Асинхронность в Python достигается за счет:
- **Event Loop** - центральный механизм, управляющий выполнением корутин и переключением между ними
- **Корутины (async/await)** - специальные функции, которые могут приостанавливать выполнение
- **Future/Task** - объекты, представляющие результат асинхронной операции
Пример:
```
import asyncio
async def fetch_data():
print("Начало загрузки")
await asyncio.sleep(2) # Имитация долгой операции
print("Данные загружены")
async def main():
task1 = asyncio.create_task(fetch_data())
task2 = asyncio.create_task(fetch_data())
await task1
await task2
asyncio.run(main())
```
Ключевые моменты:
- Не блокирует поток выполнения (в отличие от синхронного кода)
- Использует кооперативную многозадачность (корутины добровольно отдают контроль)
- Эффективен для I/O-bound операций