Когда один поток видит текущее значение, например, 1
, он увеличивает его до 2
как given value
и сравнивает 2
с реальным значением в памяти в текущий момент.
В случае успеха 2
будет возвращено.
В противном случае он извлечет самое новое значение, скажем, x
, и увеличит до x + 1
как заданное значение.
...
Эта процедура будетпродолжить до успешного сравнения.