Junior — Middle
137
Quels moyens peuvent garantir un comptage sécurisé des valeurs dans une application multithread ?
Réponse de l'IA
sobes.tech IA
Для безопасного подсчёта значений в многопоточном приложении на Java можно использовать несколько подходов:
- Синхронизация (synchronized) — блокировать доступ к общему ресурсу, чтобы только один поток мог изменять счётчик в момент времени:
private int count = 0;
public synchronized void increment() {
count++;
}
- Классы из java.util.concurrent.atomic — например,
AtomicInteger, который обеспечивает атомарные операции без явной синхронизации:
import java.util.concurrent.atomic.AtomicInteger;
private AtomicInteger count = new AtomicInteger(0);
public void increment() {
count.incrementAndGet();
}
- Использование потокобезопасных коллекций или структур данных, если счётчик является частью более сложной логики.
Использование AtomicInteger предпочтительно для простых счётчиков, так как это более эффективно и проще, чем синхронизация.