Как можно асинхронно проводить операции в рамках одного процесса

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