Проблема с порядком памяти атомарных переменных C++ не может воспроизвести пример переупорядочения LoadStoreC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с порядком памяти атомарных переменных C++ не может воспроизвести пример переупорядочения LoadStore

Сообщение Anonymous »

все. Я написал демо-версию, чтобы воспроизвести проблемы, упомянутые в cppreference.
cppreference demo
Я обнаружил, что в некоторых документах и ​​блогах говорится, что это может воспроизводиться не на чипах x86, а на чипах ARM, потому что Арка ARM — слабый порядок памяти. Поэтому я специально провел эксперимент на чипе Apple M1 (ARM). Однако он также не может воспроизвести r1 == r2 == 42.
Если есть какие-либо проблемы с моей демо-версией или если у вас есть другие демо-версии, которые могут воспроизвести проблему с порядком памяти.< /p>

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

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define CHECK(condition)                                                       \
if (!(condition)) {                                                          \
std::cerr 

Подробнее здесь: [url]https://stackoverflow.com/questions/79143605/c-atomic-variable-memory-order-problem-can-not-reproduce-loadstore-reordering[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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