Вопросы по теме 'compare-and-swap'

Реализация сравнения и замены (CAS) в EhCache
Я пытаюсь найти эквивалент CASMutator.cas MemCache в EhCache. По сути, я заменяю EhCache на MemCache, и мне нужно реализовать интерфейс, который требует установки значения через CAS. Есть ли у кого-нибудь понимание этого? Кроме того, учитывая, что...
1130 просмотров
schedule 27.05.2023

Использование OSAtomicCompareAndSwapPtr на iOS с включенным ARC
Перед автоматическим подсчетом ссылок вы могли бы выполнить соответствующие приведения указателей в Objective-c, чтобы позволить вам использовать bool OSAtomicCompareAndSwapPtr(void* oldValue, void* newValue, void* volatile *theValue); чтобы...
885 просмотров

очередь int со сравнением и обменом имеет состояние гонки
Я написал синхронизированную очередь для хранения целых чисел и столкнулся со странным состоянием гонки, которое, похоже, не могу понять. Пожалуйста, НЕ публикуйте решения, я знаю, как исправить код и заставить его работать, я хочу знать, что...
420 просмотров
schedule 09.08.2022

атомарный набор битов в массиве байтов
Как вы атомарно устанавливаете биты байта? Проблема, которую я пытаюсь решить, связана с обновлением огромного массива байтов, скажем, uchar data[262144]. Я устанавливаю только 2 бита байта за один раз, используя SET (индекс, значение), что...
1182 просмотров

атомарное изменение элементов массива с использованием Intel TBB
У меня есть структура узла дерева как: struct node { unsigned long key; tbb::atomic<struct node*> lChild; tbb::atomic<struct node*> rChild; }; Я бы делал compare_and_swap на...
349 просмотров
schedule 01.10.2022

Поведение сравнения и обмена с незащищенными одновременными изменениями
Скажем, некий поток использует __sync_val_compare_and_swap в определенной ячейке памяти для атомарной установки значения. Другой поток напрямую изменяет эту ячейку памяти, минуя операцию сравнения и замены. Какова будет гарантия согласованности в...
146 просмотров

Неблокирующий алгоритм для изменения List‹V› в Java
Вариант использования требует, чтобы я не блокировал ни один поток при извлечении или помещении значений в List<V> . Я просматривал алгоритмы сравнения и замены , которые требуют от вас реализации структуру данных самостоятельно. Я хотел бы...
123 просмотров

Когда я должен предпочесть более конкретную атомарную операцию использованию atomicCAS?
Я использовал atomicCAS в цикле do-while для выполнения различных арифметических операций, когда это необходимо, в моих первых параллельных программах. Я вижу, что есть и другие операции, такие как atomicInc , которые были бы такими же, как...
84 просмотров
schedule 07.08.2023

Атомарная функция без блокировок для изменения двух независимых ячеек памяти
У меня есть следующая функция с именем updateEntry , которая записывает значение в таблицу поиска. Я хотел бы создать многопоточную версию этой функции. Я изучал атомарную операцию __sync_bool_compare_and_swap , но не знаю, как правильно ее...
111 просмотров
schedule 26.06.2022

Безопасно ли чтение 64-битного атомарного значения на 64-битных платформах, если я пишу/заменяю с помощью атомарных функций ОС с барьером?
Вопрос касается последних версий iOS и macOS. Предположим, у меня есть следующая реализация для атомарного Int64 в Swift: struct AtomicInt64 { private var _value: Int64 = 0 init(_ value: Int64) { set(value) } mutating...
263 просмотров
schedule 30.11.2023

ExecutorService с AtomicInteger и Synchronized дает разные результаты
Ниже приведен код - AtomicInteger import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; public class ExecutorExample1 { public static void main(String[] args) {...
143 просмотров