Является ли unordered_map безопасным только для одновременного чтения?

Я знаю, что контейнеры STL не являются потокобезопасными, но я думаю, что они должны быть безопасны только для одновременного чтения. Программа, над которой я работаю, показывает неожиданные небольшие изменения, когда я переключил ее с монопоточности на многопоточность. Безуспешно просматривая свой код и возможные ошибки, я начинаю сомневаться в своих убеждениях.

Является ли unordered_map безопасным только для одновременного чтения? Существование ключей проверяется, если они существуют, для чтения значения используется оператор [], и разные потоки могут одновременно читать один и тот же ключ.


person Dr. Jekyll    schedule 29.11.2016    source источник
comment
Да, параллельное чтение из немодифицированного контейнера безопасно.   -  person SergeyA    schedule 29.11.2016
comment
Спасибо и Baum mit Augen, у меня есть ответ. Я проголосовал за пост от Baum mit Augen. Тему можно закрывать, это дубликат.   -  person Dr. Jekyll    schedule 29.11.2016
comment
Обратите внимание, что unordered_map::find возвращает итератор к найденному элементу, поэтому вы можете проверить существование ключа и прочитать значение за один раз. Нет необходимости в дополнительном поиске с operator[]   -  person Chris Drew    schedule 29.11.2016
comment
Да, я буду использовать этот способ для чтения значений. Спасибо.   -  person Dr. Jekyll    schedule 29.11.2016