Встречается на собеседованиях • сегодня
Какие знаешь проблемы с общей памятью у многопроцессорности в 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
интервью вопросы и ответы