Многопоточность в 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
212 +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 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир