Какие знаешь технические особенности async/await в Python

Python Senior Без компании
Какие знаешь технические особенности async/await в Python
Ответы
Async/await в Python основаны на концепции корутин (coroutines) и event loop. Ключевые особенности: - **Неблокирующие операции** - async функции позволяют выполнять I/O операции без блокировки потока, переключаясь на другие задачи. - **Event Loop** - управляет выполнением корутин, планируя их выполнение. Используется `asyncio.get_event_loop()` или `asyncio.run()`. - **Синтаксис**: ``` async def fetch_data(): # асинхронная операция await some_io_operation() ``` - **Ограничения**: - Нельзя использовать await в обычных функциях - Не все библиотеки поддерживают async (нужно использовать специальные версии типа aiohttp вместо requests) - **Генерация событий** - корутины могут приостанавливать (yield) и возобновлять выполнение. Пример: ``` import asyncio async def main(): print('Hello') await asyncio.sleep(1) print('World') asyncio.run(main()) ``` Важно: async не делает код быстрее для CPU-bound задач, только для I/O-bound.