Многопоточность в 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
176 +1
0
Ответы
1

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

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

import asynci
import aiohtt
urls = ["http://site.ru/path1", "http://site.ru/path2", ...] # список всех UR
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
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 792 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир