Re: volatile у переменной класса
От: MaximE Великобритания  
Дата: 09.01.05 18:55
Оценка: 9 (1) +1 -4
Vet wrote:

> В объекте класса есть переменная, которая используется двумя потоками.

> Один из потоков иногда меняет ее значение.
> Есть ли необходимость в этом случае делать переменную как volatile.
> И зависит ли ответ от того, сздан ли объект класса на стеке или в динамической памяти.
>
> Вопрос вызван тем, что у Рихтера прочитал, что если глобальная переменная используется
> разными потоками, то она обязана быть volatile. Вот меня и рабирают сомнения нужно ли
> тоже самое делать для переменных(членов) класса.

Рихтер ошибался.

volatile не имеет никакого отношения к multithreading, поэтому его применение в этой ситуации не только бесполезно, но может быть и вредно, так как с volatile компилятор не сможет соптимизировтать доступ к этой переменной. Но если один из потоков изменяет переменную, синхронизация при помощи мютексов обязательна.

--
Maxim Yegorushkin
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.