Встречается на собеседованиях • сегодня
Можно ли I/O bound задачу решить с помощью многопроцессинга
Да, можно. I/O bound задачи (например, работа с сетью, файлами, БД) часто тратят время на ожидание ответа от внешних ресурсов. Многопроцессинг позволяет параллельно выполнять несколько таких операций, уменьшая общее время выполнения.
Пример с загрузкой веб-страниц:
python
import requests
from multiprocessing import Pool
def fetch_url(url):
response = requests.get(url)
return response.status_code
urls = ['https://example.com', 'https://google.com', 'https://github.com']
with Pool(processes=3) as pool:
results = pool.map(fetch_url, urls)
print(results)
text
Плюсы:
- Каждый процесс работает независимо
- GIL не мешает, так как процессы изолированы
- Хорошо масштабируется на многоядерных системах
Но учти:
- Процессы создают больше накладных расходов, чем потоки
- Может потребоваться больше памяти
- Для очень большого количества задач лучше использовать asyncio или пул потоков
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы