Результаты поиска по запросу "lock-free"

3 ответа

Нужен ли барьер памяти для флага уведомления об изменении между потоками?

Мне нужен очень быстрый (в смысле «низкая стоимость для читателя», а не «низкая задержка») механизм уведомления об изменении между потоками для обновления кэ...

1 ответ

Получите / выпустите семантику с временными хранилищами на x64

У меня есть что-то вроде:

1 ответ

Помеченные указатели для списка lockFree в C

Я пытаюсь использовать теговые указатели для обработки операций без блокировки в списке, чтобы блокировать прохождение операций сравнения и замены (CAS), есл...

ТОП публикаций

1 ответ

Как я могу реализовать счетчик ABA с C ++ 11 CAS?

Я реализую очередь без блокировки на основе этогоалгоритм, который использует счетчик для решения проблемы ABA. Но я не знаю, как реализовать этот счетчик с ...

0 ответов

, Но без блокировки означает, что нет никакой гарантии для любого вида продвижения вперед, если один поток прерывается или выходит в середине вращения. Это требует изучения некоторого кода, чтобы полностью понять концепцию.

данно я обнаружил, что многие программисты ошибочно полагают, что «без блокировки» означает просто «параллельное программирование без мьютексов». Как правило, существует коррелированное недопонимание того, что целью написания кода без блокировки ...

5 ответов

Можете ли вы избежать блокировки, гарантируя, что несколько потоков не будут обращаться к одной и той же памяти?

Скажем, у меня большой массив, и я хочу обработать содержимое несколькими потоками. Если я делегирую каждый поток в определенный раздел, не гарантируя перекрытия, устраняет ли это необходимость блокировки, если потоки не обращаются к какой-либо ...

2 ответа

Да, L1D кэши взаимодействуют друг с другом (через L3 в процессорах Intel), используя MESI. Смотрите мой ответ для более подробной информации.

те предположим, что 2 ядра пытаются записать разные значения в один и тот же адрес ОЗУ (1 байт), в один и тот же момент времени (плюс-минус эта) и без использования каких-либо взаимосвязанных инструкций или барьеров памяти. Что происходит в этом ...

2 ответа

@PeterCordes - хорошо, правильно, я отредактировал ответ, чтобы отразить, что сейчас вам нужна только открытая проверка, которая понимает, когда это поведение началось.

лькуstd::atomic::is_lock_free() не может действительно отражать реальность [ ссылка [https://stackoverflow.com/q/49816855/1348273]], Я собираюсь написать настоящий тест во время выполнения. Однако, когда я приступил к этому, я обнаружил, что это ...

1 ответ

 было бы ложным.

с Apple LLVM 9.1.0,is_lock_free() на 128-битных структурах вернули true. Чтобы завершитьstd::optional Поддержка, я затем обновился до MacPorts GCC 7.3. Во время моей первой попытки компиляции я столкнулся с этой печально известной ошибкой ...

3 ответа

.)

volatile Ключевое слово гарантирует, что чтение и запись имеют семантику получения и выпуска соответственно. Однако, это говорит что-нибудь о введенных чтениях или письмах? Например: volatile Thing something; volatile int aNumber; void Method() ...