PYTHON АСИНХРОННОЕ ПРОГРАММИРОВАНИЕ
Python предоставляет мощные инструменты для асинхронного программирования. Ключевым элементом является asyncio - библиотека, которая доступна с Python 3.4 и выше.
Асинхронное программирование позволяет улучшить производительность приложения, особенно если оно взаимодействует с внешними ресурсами. В асинхронном подходе, код работает в одном потоке, и переключение между задачами осуществляется без блокировки.
Один из способов использования asyncio - создание корутинов. Корутины похожи на генераторы, но они позволяют выполнять асинхронный код. Проще всего создать корутин используя ключевое слово async def
:
async def my_coroutine(): print("Hello, world!")
Для запуска корутина, необходимо использовать цикл событий - asyncio.get_event_loop()
.
import asyncioasync def my_coroutine(): print("Hello, world!")loop = asyncio.get_event_loop()loop.run_until_complete(my_coroutine())loop.close()
Однако, asyncio предоставляет более детальную контрольную структуру, при которой можно запускать несколько задач одновременно и ожидать их выполнения. Для этого используется понятие Future. Future представляет результат выполнения асинхронной задачи в будущем.
import asyncioasync def my_coroutine(): await asyncio.sleep(1) return "Hello, world!"loop = asyncio.get_event_loop()future = asyncio.ensure_future(my_coroutine())loop.run_until_complete(future)result = future.result()print(result)loop.close()
Для создания более сложной структуры, например, для исполнения нескольких задач одновременно, можно использовать функции asyncio.gather
или asyncio.wait
.
1. Введение в асинхронное программирование
Степан Саржан собеседование junior python разработчик. Вопросы из Тинькова
Многопроцессность, многопоточность, асинхронность в Python и не только. Что это и как работает?
Собеседование python разработчик в мой стартап - Федор (пожелал остаться неизвестным)
Лекция 9. async / await (Программирование на Python)
Python - Асинхронное программирование. Часть 1
Новые материалы: