Junior — Middle
102
Comment implémenter une augmentation sécurisée du compteur d'opérations dans un environnement multithread?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
В Java для безопасного увеличения счётчика в многопоточной среде можно использовать класс AtomicInteger из пакета java.util.concurrent.atomic. Он обеспечивает атомарные операции без необходимости явно использовать синхронизацию.
Пример:
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();
}
}
Если по каким-то причинам нельзя использовать AtomicInteger, можно использовать ключевое слово synchronized для синхронизации метода или блока, чтобы избежать состояния гонки:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Использование AtomicInteger предпочтительнее с точки зрения производительности и читаемости кода.