Встречается на собеседованиях • сегодня

Можно ли выполнить параллельно 10 запросов, если каждый занимает 20 секунд

Да, можно выполнить 10 запросов параллельно, сократив общее время выполнения до ~20 секунд (вместо 200 при последовательном подходе). В Python для этого можно использовать ThreadPoolExecutor из модуля concurrent.futures или асинхронные запросы с asyncio и aiohttp.

Пример с ThreadPoolExecutor:

python
import requests
from concurrent.futures import ThreadPoolExecutor

def make_request(url):
return requests.get(url).status_code

urls = ["https://example.com"] * 10

with ThreadPoolExecutor(max_workers=10) as executor:
results = list(executor.map(make_request, urls))

text

Или асинхронный вариант:
```python
import aiohttp
import asyncio

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def main():
    async with aiohttp.ClientSession() as session:
        tasks = [fetch(session, "https://example.com") for _ in range(10)]
        await asyncio.gather(*tasks)

asyncio.run(main())

Оба подхода позволяют выполнить запросы параллельно, но имеют особенности: потоки подходят для IO-bound операций, а asyncio требует асинхронных библиотек.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы