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

Безопасное и однозначное управление атомарными переменными в C ++ 11
Мне нужно прочитать некоторые данные (которые поступают с невероятной скоростью - до 5000 сообщений в секунду) из многоадресного (UDP) потока. Поскольку поток является многоадресным (и данные очень важны), поставщик данных предоставил два потока,...
240 просмотров
schedule 04.07.2023

последовательность до модификации порядка согласованности
с http://en.cppreference.com : Ослабленное упорядочение Атомарные операции с тегами std :: memory_order_relaxed не являются операциями синхронизации, они не упорядочивают память. Они гарантируют только атомарность и согласованность порядка...
313 просмотров

Разница между memory_order_consume и memory_order_acquire
У меня есть вопрос относительно статьи GCC-Wiki . Под заголовком Общая сводка приведен следующий пример кода: Тема 1: y.store (20); x.store (10); Тема 2: if (x.load() == 10) { assert (y.load() == 20) y.store (10) } Говорят, что...
2347 просмотров
schedule 14.10.2022

заблокировать бесплатную структуру данных одного производителя и нескольких потребителей, используя атомарную структуру
Недавно у меня был пример кода, как показано ниже (реальный код намного сложнее). После просмотра доклада Ганса Бёма cppcon16 об атомарности я немного беспокоюсь о том, работает ли мой код. produce вызывается одним потоком-производителем, а...
862 просмотров
schedule 24.04.2024

Модель памяти с ++: синхронизируются ли загрузки seq_cst с хранилищами seq_cst?
В модели памяти C ++ существует общий порядок всех загрузок и сохранений всех последовательно согласованных операций. Мне интересно, как это взаимодействует с операциями, которые имеют другой порядок памяти, который упорядочен до / после...
309 просмотров

Естественное выравнивание + volatile = атомарное в С++ 11?
1) Это следующее объявление естественно выровненного указателя: alignas(sizeof(void *)) volatile void * p; эквивалентно std::atomic<void *> in C++11? 2) Точнее, правильно ли предположить, что этот тип указателя будет...
135 просмотров
schedule 11.04.2024

Порядок использования памяти в C11
Я читал о том, что имеет отношение зависимости и упорядочено по зависимостям , которое использует его в своем определении 5.1.2.4(p16) : Оценка A упорядочивается по зависимости перед оценкой B , если: - A выполняет операцию...
876 просмотров
schedule 11.05.2022

Есть ли у нас гарантия, что любая атомарная запись немедленно сохранит новое значение атомарной переменной в основной памяти?
Итак, я много читал о переупорядочении инструкций и памяти и о том, как мы можем это предотвратить, но у меня до сих пор нет ответа на один вопрос (вероятно, потому, что я недостаточно внимателен). Мой вопрос: есть ли у нас гарантия, что любая...
171 просмотров

Как реализован std::atomic
Я изучаю разницу между mutex и atomic в С++ 11. Насколько я понимаю, mutex — это своего рода механизм блокировки, который реализован на базе ОС/ядра. Например, Linux предлагает механизм futex . С помощью futex мы могли реализовать mutex...
3698 просмотров

g ++ std :: option кажется, не может поддерживать пользовательский класс с членом переменной std :: atomic / std :: mutex (с деталью / кодом)
Если у меня есть класс с членом std :: atomic_bool или std :: mutex, например, и если я помещу этот класс внутри std :: variant, мой g ++ будет жаловаться на отсутствие соответствующей функции для вызова std :: variant ‹... . ›. Теперь я должен...
70 просмотров
schedule 13.07.2023

Достаточно ли синхронизируется этот многопоточный код обработки списков?
У меня есть этот код в test.cpp : #include <atomic> #include <chrono> #include <cstdlib> #include <iostream> #include <thread> static const int N_ITEMS = 11; static const int N_WORKERS = 4; int main(void) { int*...
42 просмотров
schedule 06.10.2023