@khrisanfov
Программист

Как безопасно писать в multiprocessing.Manager().dict()?

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

UPDATE: проверил как работает setdefault без lock(), оказалось что в два раза медленнее чем обычная запись с lock(), в чем причина такой медленной работы?
  • Вопрос задан
  • 316 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы