Многопоточность в python? У меня есть такая задача: Необходимо делать запросы к серверу на разные url параллельно. То есть: Поток 1: while 1: resp = requests.get("http://site.ru/path1") Поток 2: while 1: resp = requests.get("http://site.ru/path2") .... Ссылок разных около 25. Как это лучше всего реализовать? asyncio?
Да, для реализации многопоточности в 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 вы можете эффективно работать с асинхронными задачами и выполнить запросы к серверу параллельно.
Да, для реализации многопоточности в Python для подобной задачи рекомендуется использовать asyncio.
Пример решения задачи с использованием asyncio:
import asyncioimport 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 вы можете эффективно работать с асинхронными задачами и выполнить запросы к серверу параллельно.