Является ли volatile int в C таким же хорошим, как std :: atomic в C ++ 0x?

Мне нужны атомарные переменные в моей программе. Раньше я использовал std :: atomic , но платформа, на которой я сейчас работаю, не имеет компилятора g ++, поддерживающего C ++ 0x. Я использовал volatile int , и, похоже, он работает, так как я еще не испытал состояния гонки в многоядерной системе, на которой я ее тестирую.

У меня вопрос, является ли volatile int атомарным , как std :: atomic ? Кроме того, создает ли он барьеры памяти (что мне тоже нужно)?

19
задан Puppy 8 July 2011 в 17:37
поделиться