Junior — Middle
81
Можете ли објаснити механизам рада модула asyncio у Python-у?
Одговор од АИ
sobes.tech АИ
Модуль asyncio в Python реализует поддержку асинхронного программирования с помощью событийного цикла (event loop). Основная идея — не блокировать выполнение программы при ожидании операций ввода-вывода, а переключаться между задачами, которые готовы к выполнению.
Ключевые компоненты:
- Event loop — центральный цикл, который управляет выполнением задач и обработкой событий.
- Coroutine (корутина) — функция, которая может приостанавливать своё выполнение с помощью
await, позволяя другим корутинам выполняться. - Future и Task — объекты, представляющие отложенные результаты и обёртки для корутин.
Пример использования:
import asyncio
async def say_hello():
print('Hello')
await asyncio.sleep(1) # имитация асинхронной операции
print('World')
async def main():
await asyncio.gather(say_hello(), say_hello())
asyncio.run(main())
В этом примере две корутины say_hello запускаются одновременно, и asyncio переключается между ними во время ожидания sleep, что позволяет эффективно использовать время ожидания.