The CAS primitive
compareAndSet(expected, new). Hardware atomic. Either succeeds (value was expected, now new) or fails (value changed).
Advertisement
The CAS primitive
compareAndSet(expected, new). Hardware atomic. Either succeeds (value was expected, now new) or fails (value changed).
Advertisement
The retry pattern
AtomicReference ref;
T current;
T next;
do {
current = ref.get();
next = compute(current);
} while (!ref.compareAndSet(current, next));