Junior — Middle
88
Python'da asyncio modülünün çalışma mekanizmasını açıklayabilir misiniz?
AI'dan gelen yanıt
sobes.tech yapay zeka
Модуль 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, что позволяет эффективно использовать время ожидания.