Вопросы по теме 'memory-model'

Когда запись / чтение влияет на основную память?
Когда я записываю значение в поле, какие гарантии я получаю относительно того, когда новое значение будет сохранено в основной памяти? Например, как узнать, что процессор не сохраняет новое значение в своем частном кеше, а обновляет основную память?...
433 просмотров

Видны ли все побочные эффекты задач исполнителя после invokeAll?
Если я отправлю некоторые задачи в Executor с помощью invokeAll , есть ли гарантии, что отправленный поток увидит все побочные эффекты выполнения задачи, даже если я не вызову get() для каждого из возвращенных Future ? С практической точки...
461 просмотров

Ограничения на порядок памяти в архитектуре x86
В своей замечательной книге «Параллелизм в C ++ в действии» Энтони Уильямс пишет следующее (стр. 309): Например, на архитектурах x86 и x86-64 операции атомарной загрузки всегда одинаковы, независимо от того, отмечены ли они memory_order_relaxed...
979 просмотров

Что означает каждый memory_order?
Я прочитал главу, и она мне не очень понравилась. Я до сих пор не понимаю, в чем разница между каждым порядком памяти. Это мое текущее предположение, которое я понял после прочтения гораздо более простого...
29321 просмотров
schedule 10.05.2024

Путаница по поводу ошибки реализации в деструкторе shared_ptr
Я только что посмотрел доклад Херба Саттера: C ++ и последующие версии 2012: Херб Саттер - atomic‹> Оружие, 2 из 2 Он показывает ошибку в реализации деструктора std :: shared_ptr: if( control_block_ptr->refs.fetch_sub(1,...
825 просмотров
schedule 10.11.2023

Параллельная запись одного и того же значения
У меня есть программа, которая порождает несколько потоков, которые могут записывать одно и то же значение в одно и то же место в памяти: std::vector<int> vec(32, 1); // Initialize vec with 32 times 1 std::vector<std::thread> threads;...
632 просмотров

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 просмотров