Встречается на собеседованиях • сегодня

Потокобезопасный ли Scope Singleton

В Spring по умолчанию Singleton бины потокобезопасны, если не имеют изменяемого состояния (stateless). Если же бин содержит изменяемое состояние, разработчик должен обеспечить потокобезопасность самостоятельно, используя синхронизацию или другие механизмы (например, ConcurrentHashMap, Atomic классы).

Пример потоконебезопасного Singleton бина:

java
@Service
public class CounterService {
    private int count = 0; // изменяемое состояние
    
    public void increment() {
        count++; // не потокобезопасно
    }
}

Потокобезопасная версия:

java
@Service
public class CounterService {
    private final AtomicInteger count = new AtomicInteger(0);
    
    public void increment() {
        count.incrementAndGet(); // потокобезопасно
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы