👁Предположим, вам нужно отправить несколько HTTP-запросов и дождаться всех ответов. С помощью asyncio можно сделать это параллельно, значительно увеличив производительность по сравнению с обычным последовательным выполнением.
📝 Пример кода:
import asyncio
import aiohttp
# Функция для выполнения асинхронного HTTP-запроса
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
# Основная функция для выполнения нескольких запросов одновременно
async def fetch_all(urls):
tasks = [fetch(url) for url in urls]
return await asyncio.gather(*tasks)
# Список URL для запросов
urls = ["https://example.com", "https://httpbin.org/get", "https://jsonplaceholder.typicode.com/posts"]
# Запуск асинхронной программы
loop = asyncio.get_event_loop()
results = loop.run_until_complete(fetch_all(urls))
# Вывод результатов
for result in results:
print(result[:100]) # Печатаем первые 100 символов ответа📌 Как это работает:
async def: Описываем функции, которые будут асинхронными. Они не блокируют выполнение других операцийasync with: Используем асинхронное подключение через библиотекуaiohttp, которая позволяет работать с HTTP-запросами без блокировкиawait asyncio.gather(*tasks): Запускаем все задачи параллельно и ждем их завершения
🔎 Преимущества:
- — Меньше блокировок и затрат на ресурсы
- — Процесс выполнения становится значительно быстрее, особенно при работе с большим количеством запросов
- — Подходит для реальных приложений, работающих с внешними сервисами (например, для краулеров или микросервисов)
❗️ Этот подход позволит вам существенно повысить производительность при разработке и сократить время ожидания.
tags: #python #разработка
❤️ @recura_tech



