Sobes.tech
Назад к вопросам
Senior
5

Что такое классы Atomic и для чего они нужны?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Классы Atomic в Java — это классы из пакета java.util.concurrent.atomic, которые предоставляют операции над переменными с гарантией атомарности без использования блокировок.

Они нужны для безопасного изменения значений в многопоточной среде, позволяя избежать состояния гонки и обеспечивая корректность данных при конкурентном доступе.

Примеры таких классов:

  • AtomicInteger
  • AtomicLong
  • AtomicReference<T>

Пример использования AtomicInteger:

import java.util.concurrent.atomic.AtomicInteger;

public class Counter {
    private AtomicInteger count = new AtomicInteger(0);

    public void increment() {
        count.incrementAndGet();
    }

    public int getCount() {
        return count.get();
    }
}

Здесь incrementAndGet() — атомарная операция увеличения значения, которая гарантирует, что даже при одновременном вызове из разных потоков значение не потеряется.