Back to questions
Junior — Middle
59
Можете объяснить механизм работы модуля asyncio в Python?
Answer from AI
sobes.tech AI
Модуль 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, что позволяет эффективно использовать время ожидания.