compareAndSet
Atomically sets the value to the given new value if the current value equals the expected value , returns true if the operation was successful and false only if the current value was not equal to the expected value.
Provides sequential consistent ordering guarantees and cannot fail spuriously.