Встречается на 1% собеседований по Python
Какие знаешь проблемы с общей памятью у многопроцессорности в Python
В Python многопроцессорность использует отдельные процессы, а не потоки, из-за GIL. Основные проблемы с общей памятью:
- Отсутствие разделяемой памяти по умолчанию – каждый процесс имеет свою копию данных. Для обмена данными используются:
multiprocessing.Value,multiprocessing.Array(синхронизированные объекты)multiprocessing.Queue,Pipe(межпроцессное взаимодействие)
-
Сериализация данных – передача сложных объектов требует
pickle, что может быть медленным и не поддерживает все типы. -
Гонки данных – даже с
Value/Arrayнужны блокировки (multiprocessing.Lock).
Пример:
python
from multiprocessing import Process, Value, Lock
def increment(shared_val, lock):
with lock:
shared_val.value += 1
shared = Value('i', 0)
lock = Lock()
procs = [Process(target=increment, args=(shared, lock)) for _ in range(10)]
for p in procs: p.start()
for p in procs: p.join()
print(shared.value) # 10- Высокие накладные расходы – создание процессов и синхронизация дороже, чем в многопоточности.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы