Встречается на 4% собеседований по Python

Расскажи про опыт работы с многопроцессорностью (multiprocessing)

Модуль multiprocessing в Python позволяет обходить GIL, создавая отдельные процессы с собственным интерпретатором и памятью. Основные компоненты:

  • Process — базовый класс для создания процессов
  • Pool — пул воркеров для параллельного выполнения задач
  • Queue, Pipe — механизмы межпроцессного взаимодействия
  • Lock, Semaphore — синхронизация

Пример с Pool:

python
from multiprocessing import Pool

def square(x):
    return x * x

if __name__ == '__main__':
    with Pool(4) as p:
        results = p.map(square, range(10))
    print(results)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Ключевые особенности:

  1. Полная изоляция процессов (нет shared memory по умолчанию)
  2. Более тяжеловесные чем потоки
  3. Лучше подходят для CPU-bound задач
  4. Требуют защиты точки входа if __name__ == '__main__' в Windows

Для обмена данными между процессами можно использовать multiprocessing.Array, multiprocessing.Value или менеджеры.

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

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

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