Вопросы по теме 'lock-free'

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

C++ Lock-Free шаблонный ObjectPool
они существуют? *добавлено для уточнения: существует ли какая-либо полезная библиотека, которая реализует без блокировки (которая является потокобезопасной и может реализовывать спин-блокировку или другую облегченную синхронизацию) ObjectPool...
5733 просмотров
schedule 26.10.2022

Каковы плюсы и минусы программирования без блокировок и программирования на основе блокировок?
Я использую С++ 11 в течение нескольких месяцев, мне нравится большинство компонентов стандартной библиотеки С++ 11, кроме компонентов, связанных с атомарными операциями. На мой взгляд, программирование без блокировок слишком сложно, чтобы в нем...
1319 просмотров
schedule 30.10.2023

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

(предпочтительно повысить) массив/вектор/карту без блокировки/и т. д.?
Учитывая отсутствие у меня знаний С++, пожалуйста, попробуйте прочитать мои намерения, а не мой плохой технический вопрос. Это основа моей программы...
4743 просмотров

Увидят ли другие потоки запись в переменную размером с слово «volatile» в разумные сроки?
Когда вы спрашиваете о более конкретном проблема Я обнаружил, что это основная проблема, в которой люди не совсем уверены. Можно сделать следующие предположения: ЦП действительно использует протокол согласованности кеша, такой как MESI (F)...
228 просмотров
schedule 19.09.2022

Связывание pthread отключает реализацию shared_ptr без блокировки
Название в значительной степени передает всю необходимую информацию, но вот минимальное воспроизведение: #include <atomic> #include <cstdio> #include <memory> int main() { auto ptr = std::make_shared<int>(0); bool...
595 просмотров
schedule 17.04.2024

Программирование без блокировок: переупорядочивание и семантика порядка памяти
Я пытаюсь найти свои ноги в программировании без блокировки. Прочитав разные объяснения семантики упорядочения памяти, я хотел бы прояснить, какое возможное переупорядочение может произойти. Насколько я понял, инструкции могут быть переупорядочены...
329 просмотров

Для тестирования можно ли заставить сломанный безблокировочный код выйти из строя?
[Теперь я вижу, что мой вопрос является дубликатом. Я проголосую за его закрытие.] Можно ли надежно протестировать код без блокировок на C ++? Есть известная техника? Можно ли составить правильный модульный тест? Возможны ли вообще...
46 просмотров
schedule 21.01.2024

Блокируется ли boost::lockfree::queue (в многопоточной программе)?
Я работаю над программой, в которой 2+ (gstreamer) потока boost:: и такое же количество потоков boost:: фиктивного приложения одновременно используют a очередь . Теперь эта очередь используется для синхронизации задач потока gstreamer с...
918 просмотров
schedule 19.12.2023