Многопоточность в python? У меня есть такая задача:
Необходимо делать запросы к серверу на разные url параллельно.
То есть:
Поток 1: while 1:
resp = requests.get("http://site.ru/path1")
Поток 2: while 1:
resp = requests.get("http://site.ru/path2")
....
Ссылок разных около 25. Как это лучше всего реализовать? asyncio?

21 Авг 2019 в 06:33
184 +1
0
Ответы
1

Да, для реализации многопоточности в Python для подобной задачи рекомендуется использовать asyncio.

Пример решения задачи с использованием asyncio:

import asyncio
import aiohttp
urls = ["http://site.ru/path1", "http://site.ru/path2", ...] # список всех URL
async def fetch_url(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
async def main():
tasks = [fetch_url(url) for url in urls]
results = await asyncio.gather(*tasks)
for result in results:
print(result)
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Этот код создает несколько асинхронных задач для выполнения запросов на разные URL параллельно с использованием aiohttp библиотеки. Результаты каждого запроса выводятся после выполнения всех задач.

Благодаря asyncio вы можете эффективно работать с асинхронными задачами и выполнить запросы к серверу параллельно.

20 Апр в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 888 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир