Результаты поиска по запросу "lock-free"
Помеченные указатели для списка lockFree в C
Я пытаюсь использовать теговые указатели для обработки операций без блокировки в списке, чтобы блокировать прохождение операций сравнения и замены (CAS), есл...
Как я могу реализовать счетчик ABA с C ++ 11 CAS?
Я реализую очередь без блокировки на основе этогоалгоритм, который использует счетчик для решения проблемы ABA. Но я не знаю, как реализовать этот счетчик с ...
, Но без блокировки означает, что нет никакой гарантии для любого вида продвижения вперед, если один поток прерывается или выходит в середине вращения. Это требует изучения некоторого кода, чтобы полностью понять концепцию.
данно я обнаружил, что многие программисты ошибочно полагают, что «без блокировки» означает просто «параллельное программирование без мьютексов». Как правило, существует коррелированное недопонимание того, что целью написания кода без блокировки ...
Да, L1D кэши взаимодействуют друг с другом (через L3 в процессорах Intel), используя MESI. Смотрите мой ответ для более подробной информации.
те предположим, что 2 ядра пытаются записать разные значения в один и тот же адрес ОЗУ (1 байт), в один и тот же момент времени (плюс-минус эта) и без использования каких-либо взаимосвязанных инструкций или барьеров памяти. Что происходит в этом ...
было бы ложным.
с Apple LLVM 9.1.0,is_lock_free() на 128-битных структурах вернули true. Чтобы завершитьstd::optional Поддержка, я затем обновился до MacPorts GCC 7.3. Во время моей первой попытки компиляции я столкнулся с этой печально известной ошибкой ...
@PeterCordes - хорошо, правильно, я отредактировал ответ, чтобы отразить, что сейчас вам нужна только открытая проверка, которая понимает, когда это поведение началось.
лькуstd::atomic::is_lock_free() не может действительно отражать реальность [ ссылка [https://stackoverflow.com/q/49816855/1348273]], Я собираюсь написать настоящий тест во время выполнения. Однако, когда я приступил к этому, я обнаружил, что это ...
.)
volatile Ключевое слово гарантирует, что чтение и запись имеют семантику получения и выпуска соответственно. Однако, это говорит что-нибудь о введенных чтениях или письмах? Например: volatile Thing something; volatile int aNumber; void Method() ...
Например
я делаю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; } ...
Было бы неплохо упомянуть в ответе места, где это решение является хорошим.
лизую очередь без единого производителя без блокировки для одного интенсивного сетевого приложения. У меня есть куча рабочих потоков, получающих работу в своих отдельных очередях, которые они затем удаляют и обрабатывают. Удаление блокировок из ...
Э, верно. Считай, мое последнее предложение. Неужели никто не мог понять, что я понял этот момент, но пытался донести до реальности реалии многопоточности, которые, по-видимому, должен понять автор? Возможно, у постера есть другой код, к которому будет применяться эта строка рассуждений.
у меня есть глубоко неизменяемый тип (все члены доступны только для чтения и если они являются элементами ссылочного типа, то они также ссылаются на объекты, которые являются глубоко неизменяемыми). Я хотел бы реализовать ленивое ...