Как безопасно писать в multiprocessing.Manager().dict()?
Хочу использовать словарь типа multiprocessing.Manager().dict() для записи данных в каждом запущенном процессе. Каждый процесс должен проверять, есть ли значение с заданным ключом, если нет, то создавать запись. Нужно ли использовать multiprocessing.Lock() перед чтением/записью или данный тип словаря является потокобезопасным? Если словарь потокобезопасный, то лучше всего создавать значения за один вызов через setdefault? Спасибо.
UPDATE: проверил как работает setdefault без lock(), оказалось что в два раза медленнее чем обычная запись с lock(), в чем причина такой медленной работы?