Как правильно использовать std::memory_order, чтобы обеспечить бесперебойность многопоточного чтения и записи?C++

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

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


Согласно https://en.cppreference.com/w/cpp/atomic/memory_order, я обнаружил:


Изображение


Но когда я написал свою собственную тестовую программу, она постоянно сообщала об ошибке:

#include #include #include #include constexpr size_t размер = 32; std::atomic_int32_t arr[размер]; недействительный ThreadFunc1 () { for (size_t я = 0; я = 0; --i) { Assert(arr.load(std::memory_order_acquire) != 0); } } интервал основной() { for (size_t я = 0; я
Ответить

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

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

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

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

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