Понимание C ++ 11 Заборы памятиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Понимание C ++ 11 Заборы памяти

Сообщение Anonymous »

Я пытаюсь понять заборы памяти в C ++ 11, я знаю, что есть лучшие способы сделать это, атомные переменные и так далее, но подумали, правильно ли это использование. Я понимаю, что эта программа не делает ничего полезного, я просто хотел убедиться, что использование функций забора сделало то, что, как я думал, они сделали. Выпуск гарантирует, что какие -либо изменения, внесенные в эту резьбу, до забора видны в другие резьбы после ограждения, и что во второй резьбе какие -либо изменения в переменных видны в резьбе сразу после забора? < /p>

Является ли мое понимание правильно? Или я полностью упустил точку зрения? < /P>

#include
#include
#include

int a;

void func1()
{
for(int i = 0; i < 1000000; ++i)
{
a = i;
// Ensure that changes to a to this point are visible to other threads
atomic_thread_fence(std::memory_order_release);
}
}

void func2()
{
for(int i = 0; i < 1000000; ++i)
{
// Ensure that this thread's view of a is up to date
atomic_thread_fence(std::memory_order_acquire);
std::cout

Подробнее здесь: https://stackoverflow.com/questions/136 ... ory-fences
Ответить

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

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

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

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

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