Как выполняется один глобальный порядок в std :: memory_order_seq_cst?C++

Программы на C++. Форум разработчиков
Anonymous
Как выполняется один глобальный порядок в std :: memory_order_seq_cst?

Сообщение Anonymous »

Я запускаю свой код C ++ на Mac Machine Arm. Эти переменные изначально 0 , а затем обновляются до 1 .
Теперь есть несколько потоков считывателей. Каждый поток считывает значение x и y . Идея состоит в том, что если есть < /p>

"один глобальный заказ" < /p>
< /blockquote>
Тогда {x = 0, y = 1} и {x = 1, y = 0} не видно вместе. std :: atomic готово . Готовый флаг похож на спусковой крючок. Все потоки могут запустить свою соответствующую логику только после того, как готова - true
Но удивительно, я получаю результат {0,1} и {1,0} на моей машине.

Код: Выделить всё

#include 
#include 
#include 
#include 

const char *machine()
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79699895/how-does-the-single-global-order-in-stdmemory-order-seq-cst-work[/url]

Вернуться в «C++»