memory_order_relaxed и не публикует другие записи потока. Два потока прибавят к счетчику с relaxed-порядком и.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpThRx 548 of 696 menu
◀ ▶

Ослабленный порядок memory_order_relaxed в C++

Только атомарность самой операции гарантирует memory_order_relaxed и не публикует другие записи потока.

Два потока прибавят к счетчику с relaxed-порядком и выведем сумму:

#include <atomic> #include <iostream> #include <thread> int main() { std::atomic<int> tally{0}; std::thread a([&]() { tally.fetch_add(1, std::memory_order_relaxed); }); std::thread b([&]() { tally.fetch_add(1, std::memory_order_relaxed); }); a.join(); b.join(); std::cout << tally.load() << "\n"; return 0; }

Три потока делают fetch_add(1, std::memory_order_relaxed). Выведите load после всех join.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить