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

Использовал ли общую память в мультипроцессинге

В Python мультипроцессинг по умолчанию использует изолированную память для каждого процесса. Однако есть способы использовать общую память через специальные объекты:

  1. Value и Array из модуля multiprocessing - для примитивных типов данных
  2. Manager - для более сложных структур (словари, списки)

Пример с Value:

python
from multiprocessing import Process, Value

def worker(n):
    n.value += 1

num = Value('i', 0)  # 'i' - целое число
processes = [Process(target=worker, args=(num,)) for _ in range(4)]

for p in processes:
    p.start()
for p in processes:
    p.join()

print(num.value)  # Может быть от 1 до 4 из-за race condition

Важно: при работе с общей памятью нужно использовать блокировки (Lock) для избежания race conditions. Общая память медленнее из-за синхронизации.

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

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

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

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