Вопросы по теме 'stdatomic'

ключевое слово volatile для объектов в C++
У меня есть потокобезопасный объект счетчика (это класс, который использует std::atomic load() и store()) в качестве одного из членов класса. Поток 1 увеличивает счетчик, а поток 2 считывает счетчик. Обычно примитивные типы ( int и т. д. ),...
142 просмотров

Compare_exchange_strong не работает, несмотря на то, что данные соответствуют ожидаемому значению
Проблема заключается в том, что compare_exchange_strong возвращает false, несмотря на то, что базовые данные равны expected . например.: std::atomic<data> ptr; ... auto ptr_data = ptr.load(); bool cmp_result = memcmp(&ptr_data,...
327 просмотров
schedule 12.03.2024

fetch_add с порядком памяти acq_rel
Рассмотрим std::atomic<int> x(0); Предположим, у меня есть функция, выполняющая следующие действия: int x_old = x.fetch_add(1,std::memory_order_acq_rel); Основываясь на описании для упорядочивания памяти для получения релиза :...
2136 просмотров
schedule 30.03.2024

Стандарт С++: можно ли поднять расслабленные атомарные хранилища над блокировкой мьютекса?
Есть ли в стандарте какая-либо формулировка, гарантирующая, что расслабленные хранилища для атомарных элементов не будут сняты выше блокировки мьютекса? Если нет, есть ли какая-либо формулировка, в которой прямо говорится, что это кошерно для...
1039 просмотров

Часто ли обновлять данные std :: atomic ‹double› проблематично?
Проблема Предположим, что static std::atomic<double> dataX =0.0; определен в cpp (модуле) В этом модуле определены две отдельные функции. Эти функции будут вызываться и запускаться двумя потоками независимо, под капотом (внутри...
265 просмотров
schedule 11.01.2024

Почему моя переменная std::atomic‹int› не является потокобезопасной?
Я не знаю, почему мой код не является потокобезопасным, поскольку он выводит некоторые противоречивые результаты. value 48 value 49 value 50 value 54 value 51 value 52 value 53 Мое понимание атомарного объекта заключается в том, что он...
3417 просмотров

Относительная производительность std::atomic и std::mutex
Я рассматриваю варианты реализации очереди для проекта, требование которого состоит в том, что производитель, как минимум, должен иметь как можно более низкую латентность. С этой целью я исследовал очереди «без блокировки», используя std::atomic...
129 просмотров