Результаты поиска по запросу "atomic"
потому что он объявлен как дефолт, а не объявлен и затем определен как дефолт. Таким образом, применим второй пункт [dcl.init] / 7, объект инициализируется нулями, после чего следует (не) вызов конструктора (по умолчанию), который ничего не делает.
ботай здесь я понимаю, что фактически ноль инициализируетstd::atomic<T> a{}, Я всегда так думал и практически использовал его доaэто, Прежде чем объяснить мое понимание этого, я хочу показать, что, по крайней мере, gcc и clang делают это на ...
Можно добиться атомарности памяти с помощью многошаговых перемещений, используя префикс x86 LOCK. Однако этого следует избегать, так как это может быть очень дорого в многоядерных системах (LOCK не только блокирует доступ к памяти другим ядрам, но также блокирует системную шину на время операции, которая может повлиять на операции ввода-вывода диска и видео операции. LOCK может также заставьте другие ядра очистить свои локальные кэши)
кер - в этом нет сомнений. По этой причине (и очень немногим) я недавно провел небольшой эксперимент, чтобы подтвердить свое подозрение, чтоstruct это не атомарная операция, котораяозначает что так называемый «неизменный» тип значения, который ...
Да, сильная форма повторяется в случае ложного сбоя, а не тогда, когда объект не имеет ожидаемого значения.
уверен, что это я не понимаю или документация четко не сформулирована. Следующая выдержка была взята из новейшего черновика (N3126, раздел 29.6): bool atomic_compare_exchange_weak(volatile A* object, C * expected, C desired); bool ...
@PeterCordes - хорошо, правильно, я отредактировал ответ, чтобы отразить, что сейчас вам нужна только открытая проверка, которая понимает, когда это поведение началось.
лькуstd::atomic::is_lock_free() не может действительно отражать реальность [ ссылка [https://stackoverflow.com/q/49816855/1348273]], Я собираюсь написать настоящий тест во время выполнения. Однако, когда я приступил к этому, я обнаружил, что это ...
было бы ложным.
с Apple LLVM 9.1.0,is_lock_free() на 128-битных структурах вернули true. Чтобы завершитьstd::optional Поддержка, я затем обновился до MacPorts GCC 7.3. Во время моей первой попытки компиляции я столкнулся с этой печально известной ошибкой ...
Ответ подробно объясняет, почему нам не нужно использовать какие-либо взаимосвязанные операции для простого чтения / записи (но мы делаем для чтения-изменения-записи).
ечание: я добавил теги к этому вопросу в зависимости от того, где, по моему мнению, будут люди, которые могут помочь, поэтому, пожалуйста, не кричите :)) В моем 64-битном проекте VS 2017 у меня есть значение длиной 32 битаm_lClosed, Когда я хочу ...
для некоторого обсуждения проблем, обнаруженных в стандарте C11.
структура данных содержит несколько элементов, ее атомарная версия не может (всегда) быть свободной от блокировки. Мне сказали, что это верно для больших типов, потому что процессор не может атомарно изменить данные без использования какой-либо ...
Я редактировал вопрос. Я думаю, что теперь стало понятнее. Я не хочу делать атомарные строковые назначения. Интересно, меняет ли это выравнивание памяти.
ал статью оПрограммирование без блокировки [http://msdn.microsoft.com/en-us/library/ee418650%28v=vs.85%29.aspx]в MSDN. Это говорит: На всех современных процессорах можно предположить, что читает и пишет естественно выровненные нативные типы ...
TIdThreadSafeStringList и некоторые другие ...
тся ли «логические» переменные потокобезопасными для чтения и записи из любого потока? Я видел ссылки на некоторые группы новостей, чтобы сказать, что они есть. Доступны ли другие типы данных? (Перечислимые типы, короткие ...
C ++ - Как инициализировать массив атомик?
array< atomic_size_t, 10 > A;ниatomic_init(A,{0}) ниA = {ATOMIC_VAR_INIT(0)} кажется, работает, возвращая непонятную ошибку. Как бы вы инициализировали массив атомиков в 0 с? Даже для циклов обновление одного элемента массива на каждом шаге не ...