Форум сайта python.su
Скажите пожалуйста, эвент луп в asyncio, когда обрабатывает асинхронные операции, он их распараллеливает по отдельным потокам или все выполняет в одном потоке?
Например есть следующий код:
import asyncio import aiohttp urls = ['http://www.google.com', 'http://www.yandex.ru', 'http://www.python.org'] async def call_url(url): print('Starting {}'.format(url)) response = await aiohttp.get(url) data = await response.text() print('{}: {} bytes: {}'.format(url, len(data), data)) return data futures = [call_url(url) for url in urls] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(futures))
Офлайн
zlodiakОбычно в одном, но можно сделать и в разных.
распараллеливает по отдельным потокам или все выполняет в одном потоке
zlodiakВы уверены?
В случае javascript всё было бы ясно:
zlodiakhttps://habr.com/ru/company/wrike/blog/302896/
может все три запроса выполнить в отдельных потоках
Офлайн