Junior — Middle
Sur quel principe fondamental repose la mise en œuvre non bloquante de la classe AtomicInteger?
sobes.tech IA
Réponse de l'IA
Неблокирующая реализация класса AtomicInteger в Java основана на принципе CAS (Compare-And-Swap) — атомарной операции сравнения и замены значения. Эта операция позволяет обновлять значение переменной только если оно не изменилось с момента последней проверки, что обеспечивает потокобезопасность без использования блокировок.
Пример использования CAS в упрощённом виде:
import java.util.concurrent.atomic.AtomicInteger;
AtomicInteger atomicInt = new AtomicInteger(0);
// Попытка увеличить значение на 1
int oldValue, newValue;
do {
oldValue = atomicInt.get();
newValue = oldValue + 1;
} while (!atomicInt.compareAndSet(oldValue, newValue));
Таким образом, AtomicInteger обеспечивает эффективную синхронизацию между потоками без затрат на блокировки.