Многопоточность C++: видимые побочные эффекты неатомарных переменныхC++

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

Сообщение Anonymous »

В стандарте C++ есть часть, касающаяся многопоточной модели памяти, которую я не понимаю.

видимый побочный эффект< /strong> A на скалярном объекте или битовом поле M относительно вычисления значения B из M удовлетворяет условиям:
  • A происходит до B и
  • не существует другого побочного эффекта от X до M, такого, что A происходит раньше X и X происходят раньше B.

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

А также согласно стандарту C++ связь «происходит до» между потоками должна быть установлена ​​с помощью «синхронизируется с» или «< em>упорядочивается по зависимостям до", поэтому связь "происходит до" не будет установлена ​​без синхронизации между потоками.
Теперь предположим, что есть два потока T1 и T2, оба запускаются основным потоком и никогда не синхронизируются друг с другом (поэтому не будет никаких отношений «происходит раньше», установленных между T1 и T2). Если T1 записывает в неатомарную переменную M, то, согласно приведенной выше цитате, T2 никогда не должен видеть M, измененную T1, поскольку не существует связи «происходит раньше». между T1 и T2.
Вместо этого T2 имеет отношение «синхронизируется с», установленное с основным потоком во время запуска T2, поэтому T2 должен видеть значение M устанавливается основным потоком до того, как он был запущен основным потоком, поскольку между основным потоком и T2 существует связь «происходит раньше».
Верно ? Однако я провел эксперимент на своей машине, и это не так. Что не так?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Какова производительность std::atomic и неатомарных переменных?
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Указано ли в стандарте C++ «Побочные эффекты функции упорядочиваются перед ее вычислением»?
    Anonymous » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Есть ли какие-либо побочные эффекты при удалении каталога /var/cache/apt в Linux [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Определяет ли стандарт, когда видны побочные эффекты создания экземпляра шаблона функции?
    Anonymous » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Есть ли какие-либо побочные эффекты для Runtime.getRuntime().gc() [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

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