У меня есть приложение с массивом указателей на MyObject
объекты:
MyObject **arr;
arr= new MyObject*[10];
Приложение имеет два потока, эти потоки будут создавать и удалять new MyObject()
в массив arr
. Поэтому arr[n]
будут все время меняться, а сами MyObject
не меняются.
Должен ли я просто объявить:
volatile MyObject **arr;
Или я должен пойти с:
MyObject ** volatile arr;
заранее спасибо
const
? - person John   schedule 29.07.2011volatile
сильно снижает производительность, в зависимости от компилятора. В любом случае, это не добавляет волшебной потокобезопасности. - person Damon   schedule 29.07.2011volatile
? Я думаю, вам нужно сделать резервную копию и рассказать нам, какую проблему вы пытаетесь решить. Более того, вы должны остерегаться того, что многие компиляторы сильно ошибаются, когда дело доходит доvolatile
. - person David Hammen   schedule 29.07.2011volatile
в C++ в целом. 3) Так что не ленитесь и слушайте экспертов: volatile бесполезна в многопоточности. Период. Извините, вы не можете заткнуть уши и сказать «ла-ла-ла» и сказать: «Посмотрите, это работает при некоторых обстоятельствах на этом одном компиляторе в этой одной операционной системе». Это не так. Используйте соответствующие инструменты. - person GManNickG   schedule 29.07.2011