Здравствуйте, uzhas, Вы писали:
U>интересует вот какой сценарий: в одном потоке я заполняю некоторую структуру данных (пусть будет std::map), далее я запускаю несколько потоков, которые будут использовать заполненный объект в режиме readonly (пусть будут выполнять find) (предполагается использовать без мьютексов)
На здоровье, работать будет.
U>1) какие есть гарантии по поводу видимости всего объекта в других потоках? я должен быть уверен, что все потоки работают с одним и тем же словарем
Что передашь, с тем и будут работать.
Создающий поток ждет остальных? Тогда можно создавать на стеке. Если нет, то размещать мап надо где-то в общедоступном месте.
Указатель на мап или на "общедоступное место" можно передать в функцию потока.
U>2) какие есть средства в языке для управления видимостью ? я так понимаю, что барьеры выполняют эту функцию, только не ясно как оптимально их использовать. каждый раз при чтении использовать барьер может быть затратно
Не, барьеры из другой оперы.
_____________________
С уважением,
Stanislav V. Zudin