История изменений
Исправление kovrik, (текущая версия) :
Вообще, я правильно понимаю, что все lock-free алгоритмы применимы только к одному объекту (увеличить значение и вернуть/ сравнить и заменить и тд)?
Если нужно, например, взять содержимое RingBuffer'а, произвести вычисление, потом добавить результат в RingBuffer, то такая процедура требует как минимум трех операций и сделать ее атомарной никак не получится (при этом, она будет зависеть от содержимого RingBuffer'а т.е. от состояния нескольких объектов - и тут без lock'ов не обойтись)?
Исходная версия kovrik, :
Вообще, я правильно понимаю, что все lock-free алгоритмы применимы только к одному объекту (увеличить значение и вернуть/ сравнить и заменить и тд)?
Если нужно, например, взять содержимое RingBuffer'а, произвести вычисление, потом добавить результат в RingBuffer, то такая процедура требует как минимум трех операций и сделать ее атомарной никак не получится?