Re: multithreading : visibility control
От: Stanislav V. Zudin Россия  
Дата: 30.05.13 07:46
Оценка: +1 :)
Здравствуйте, uzhas, Вы писали:

U>интересует вот какой сценарий: в одном потоке я заполняю некоторую структуру данных (пусть будет std::map), далее я запускаю несколько потоков, которые будут использовать заполненный объект в режиме readonly (пусть будут выполнять find) (предполагается использовать без мьютексов)


На здоровье, работать будет.

U>1) какие есть гарантии по поводу видимости всего объекта в других потоках? я должен быть уверен, что все потоки работают с одним и тем же словарем


Что передашь, с тем и будут работать.
Создающий поток ждет остальных? Тогда можно создавать на стеке. Если нет, то размещать мап надо где-то в общедоступном месте.
Указатель на мап или на "общедоступное место" можно передать в функцию потока.

U>2) какие есть средства в языке для управления видимостью ? я так понимаю, что барьеры выполняют эту функцию, только не ясно как оптимально их использовать. каждый раз при чтении использовать барьер может быть затратно


Не, барьеры из другой оперы.
_____________________
С уважением,
Stanislav V. Zudin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.