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

Расскажи про опыт работы с многопроцессорностью (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 или менеджеры.

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

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

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

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