Я знаю, что стандарт C ++ ничего не гарантирует при наличии гонки данных (я считаю, что гонка данных имеет неопределенное поведение, что означает, что все идет, включая завершение программы, изменение случайной памяти и т. Д.).
Существует ли какая-либо архитектура, в которой гонка данных, состоящая из одного потока, записывающего в ячейку памяти и одного потока, считывающего из одного и того же места (без синхронизации), не приводит к тому, что операция чтения читает неопределенное значение и где ячейка памяти находится «в конечном итоге» ( после барьера памяти) обновлено до значения, записанного операцией записи?
[отредактировано, чтобы заменить "состояние гонки" на "гонку данных"]
std::mutex
или атомикс. Это действительно просто и безопасно. - person stefan   schedule 30.03.2014