Метод compareAndSwap()
Метод compareAndSwap() используется для атомарного обновления значения переменной.
Он позволяет изменить значение переменной только в том случае, если ее текущее значение совпадает с ожидаемым. Это помогает избежать состояния гонки при многопоточном доступе.
В примере мы объявляем AtomicInteger count и инициализируем его значением 0. Метод increment() сначала получает текущее значение в переменную currentValue, затем в цикле do-while вызывается compareAndSet, который проверяет равно ли текущее значение count значению currentValue, если да, то устанавливает новое значение currentValue + 1, если нет (значение изменилось другим потоком), то цикл повторяется.
Таким образом гарантируется атомарное инкрементирование переменной count.
👉 @java_geek
Post #316
758

- 👍 3