Я изменяю программу с одним потоком на многопоточную, используя библиотеку boost:thread. Программа использует unordered_map в качестве hasp_map для поиска. Мой вопрос:
В одно время многие потоки будут писать, а в другое время многие будут читать, но не читать и писать одновременно, т.е. либо все потоки будут читать, либо все будут писать. Будет ли это потокобезопасным и контейнер, предназначенный для этого? А если и будет, то действительно ли он будет параллельным и повысит производительность? Нужно ли использовать какой-то запирающий механизм?
Я где-то читал, что стандарт C++ говорит, что поведение будет неопределенным, но это все?
ОБНОВЛЕНИЕ: я также думал о Intel concurrent_hash_map. Будет ли это хорошим вариантом?