Какой вывод можно сделать по результату атомарных операций?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Какой вывод можно сделать по результату атомарных операций?

Сообщение Гость »

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

// Thread 1:
obj.store(1,Release);  // #1

// Thread 2:
obj.store(2, Release);  // #2

//Thread 3:
obj.load(Acquire);  // #3
obj.load(Relaxed);  // #4
Предположим, #3 считывает значение 1, а #4 читает значение 2, можно легко сделать следующий вывод:
p>
[intro.races] p9.1< /p>

A синхронизируется с B


[intro.races] p18< /p>

Если побочный эффект X на атомарный объект M происходит до вычисления значения B для M, то оценка B берет свое значение из X или из побочного эффекта. Y, следующий за X в порядке модификации M.



[intro.races] p10.1< /p>

A секвенируется перед B



Объедините третье условие и [intro.races] p16

Если вычисление значения A атомарного объекта M происходит до значения вычисление B для M, и A берет свое значение из побочного эффекта X на M, тогда значение, вычисленное B, является либо значением, сохраненным X, либо значением, сохраненным побочным эффектом Y на M, где Y следует за X в модификации порядок M.

Мы можем сделать вывод, что побочный эффект в #2 следует за #1 в порядке модификации obj .
Итак, можем ли мы сделать вывод, что #1 происходит раньше #2 согласно [intro.races] стр.15

Если операция A, изменяющая атомарный объект M, происходит до операции B, изменяющей M, то A находится раньше, чем B в порядке модификации M.

Мне кажется, что «A раньше, чем B в M» является лишь необходимым условием для «A происходит раньше B», другими словами, кажется, мы не можем сделать вывод, что #1 происходит раньше #2, верно?

Подробнее здесь: https://stackoverflow.com/questions/781 ... operations
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Какой вывод можно сделать по результату атомарных операций?
    Anonymous » » в форуме C++
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Актуален ли порядок сбоев для атомарных операций x86?
    Гость » » в форуме C++
    0 Ответы
    20 Просмотры
    Последнее сообщение Гость
  • Актуален ли порядок сбоев для атомарных операций x86?
    Гость » » в форуме C++
    0 Ответы
    19 Просмотры
    Последнее сообщение Гость
  • Сохранение Apache Ignite не работает для атомарных типов?
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Проблема с порядком памяти атомарных переменных C++ не может быть воспроизведена
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

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