Корутины — это специальные функции в Python, предназначенные для асинхронного программирования, которые могут быть приостановлены и возобновлены в дальнейшем. Они сохраняют своё внутреннее состояние между вызовами, позволяя программе выполнять другие задачи, пока корутина "ждёт" завершения какой-либо операции.
Корутины идеально подходят для неблокирующих задач, таких как сетевые запросы, работа с файлами или взаимодействие с базами данных, — то есть для всего, что требует ожидания, но при этом не должно "замораживать" выполнение всей программы.
Корутины создаются с помощью ключевого слова async def и используют await для ожидания других асинхронных функций.
import asyncio
async def приветствие():
print("Привет")
await asyncio.sleep(2)
print("Через 2 секунды снова привет!")
Нельзя просто вызвать функцию. Необходимо использовать await или asyncio.run():
asyncio.run(приветствие())
Чтобы эффективно использовать корутины, необходимо понимать:
import asyncio
async def первая():
print("Первая началась")
await asyncio.sleep(1)
print("Первая завершена")
async def вторая():
print("Вторая началась")
await asyncio.sleep(1)
print("Вторая завершена")
async def main():
await asyncio.gather(первая(), вторая())
asyncio.run(main())
Здесь обе корутины выполняются параллельно, и программа завершается за 1 секунду, а не за 2.
Присоединяйтесь к нашим курсам для углубленного изучения области ИТ. Отправьте запрос для получения подробной информации!