Sobes.tech
Junior — Middle

Pouvez-vous donner un exemple de situation où l'utilisation d'une variable atomique est justifiée et nécessaire pour un fonctionnement correct?

sobes.tech IA

Réponse de l'IA

Атомарные переменные в Java используются для обеспечения корректной работы с данными в многопоточной среде без необходимости использовать блокировки (synchronized). Они гарантируют, что операции чтения и записи происходят атомарно, то есть неделимо и без состояния гонки.

Пример ситуации: счетчик посещений на веб-сайте, который обновляется из нескольких потоков одновременно. Использование обычного int с инкрементом может привести к некорректным значениям из-за гонок. AtomicInteger решает эту проблему:

import java.util.concurrent.atomic.AtomicInteger;

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

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

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

Таким образом, атомарная переменная обеспечивает корректное и эффективное обновление значения без блокировок.