Задать вопрос
@khrisanfov
Программист

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

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

UPDATE: проверил как работает setdefault без lock(), оказалось что в два раза медленнее чем обычная запись с lock(), в чем причина такой медленной работы?
  • Вопрос задан
  • 325 просмотров
Подписаться 1 Сложный Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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