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

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

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

UPDATE: проверил как работает setdefault без lock(), оказалось что в два раза медленнее чем обычная запись с lock(), в чем причина такой медленной работы?
  • Вопрос задан
  • 325 просмотров
Подписаться 1 Сложный Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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