Результаты поиска по запросу "lock-free"
Нужен ли барьер памяти для флага уведомления об изменении между потоками?
Мне нужен очень быстрый (в смысле «низкая стоимость для читателя», а не «низкая задержка») механизм уведомления об изменении между потоками для обновления кэ...
Получите / выпустите семантику с временными хранилищами на x64
У меня есть что-то вроде:
Помеченные указатели для списка lockFree в C
Я пытаюсь использовать теговые указатели для обработки операций без блокировки в списке, чтобы блокировать прохождение операций сравнения и замены (CAS), есл...
Как я могу реализовать счетчик ABA с C ++ 11 CAS?
Я реализую очередь без блокировки на основе этогоалгоритм, который использует счетчик для решения проблемы ABA. Но я не знаю, как реализовать этот счетчик с ...
, Но без блокировки означает, что нет никакой гарантии для любого вида продвижения вперед, если один поток прерывается или выходит в середине вращения. Это требует изучения некоторого кода, чтобы полностью понять концепцию.
данно я обнаружил, что многие программисты ошибочно полагают, что «без блокировки» означает просто «параллельное программирование без мьютексов». Как правило, существует коррелированное недопонимание того, что целью написания кода без блокировки ...
Можете ли вы избежать блокировки, гарантируя, что несколько потоков не будут обращаться к одной и той же памяти?
Скажем, у меня большой массив, и я хочу обработать содержимое несколькими потоками. Если я делегирую каждый поток в определенный раздел, не гарантируя перекрытия, устраняет ли это необходимость блокировки, если потоки не обращаются к какой-либо ...
Да, L1D кэши взаимодействуют друг с другом (через L3 в процессорах Intel), используя MESI. Смотрите мой ответ для более подробной информации.
те предположим, что 2 ядра пытаются записать разные значения в один и тот же адрес ОЗУ (1 байт), в один и тот же момент времени (плюс-минус эта) и без использования каких-либо взаимосвязанных инструкций или барьеров памяти. Что происходит в этом ...
@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. Во время моей первой попытки компиляции я столкнулся с этой печально известной ошибкой ...
.)
volatile Ключевое слово гарантирует, что чтение и запись имеют семантику получения и выпуска соответственно. Однако, это говорит что-нибудь о введенных чтениях или письмах? Например: volatile Thing something; volatile int aNumber; void Method() ...