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

1 ответ

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

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

1 ответ

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

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

0 ответов

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

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

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

2 ответа

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

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

1 ответ

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

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

2 ответа

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

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

3 ответа

.)

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

4 ответа

Например

я делаюc Реализация и в настоящее время имеют структуру очереди: typedef struct queueelem { queuedata_t data; struct queueelem *next; } queueelem_t; typedef struct queue { int capacity; int size; queueelem_t *head; queueelem_t *tail; } ...

6 ответов

Было бы неплохо упомянуть в ответе места, где это решение является хорошим.

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

8 ответов

Э, верно. Считай, мое последнее предложение. Неужели никто не мог понять, что я понял этот момент, но пытался донести до реальности реалии многопоточности, которые, по-видимому, должен понять автор? Возможно, у постера есть другой код, к которому будет применяться эта строка рассуждений.

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