Вопросы по теме 'stdatomic'
ключевое слово volatile для объектов в C++
У меня есть потокобезопасный объект счетчика (это класс, который использует std::atomic load() и store()) в качестве одного из членов класса. Поток 1 увеличивает счетчик, а поток 2 считывает счетчик.
Обычно примитивные типы ( int и т. д. ),...
142 просмотров
schedule
15.06.2024
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 просмотров
schedule
27.12.2023
Часто ли обновлять данные 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 просмотров
schedule
07.12.2022
Относительная производительность std::atomic и std::mutex
Я рассматриваю варианты реализации очереди для проекта, требование которого состоит в том, что производитель, как минимум, должен иметь как можно более низкую латентность. С этой целью я исследовал очереди «без блокировки», используя std::atomic...
129 просмотров
schedule
20.04.2024