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

Для каких задач не подходит многопроцессорность

Многопроцессорность не подходит для задач, которые:

  1. Требуют частого обмена данными — IPC (межпроцессное взаимодействие) медленнее, чем многопоточность, из-за сериализации и копирования данных.
  2. Имеют высокую contention (конкуренцию) — например, работа с общим ресурсом (файлом, БД) без возможности разделения.
  3. Нуждаются в shared state (общем состоянии) — процессы изолированы, и синхронизация сложнее, чем в потоках.
  4. Малые и быстрые задачи — накладные расходы на создание процессов могут перевесить выгоду.
  5. Зависимы от GIL — например, CPU-bound задачи в Python, где GIL не мешает (лучше использовать multiprocessing).

Пример:

python
import multiprocessing

def small_task(x):  
    return x * x  # Слишком легкая задача для процессов  

if __name__ == "__main__":  
    pool = multiprocessing.Pool()  
    results = pool.map(small_task, range(10))  # Оверхеад >> выгоды  
    print(results)  

Лучше использовать потоки (ThreadPool) или вообще последовательное выполнение.

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

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

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

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