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

Является ли бин со Scope Prototype потокобезопасным

Нет, бин с Scope Prototype не является потокобезопасным по умолчанию. Каждый раз при обращении к такому бину Spring создаёт новый экземпляр, но если сам класс бина не синхронизирован, его состояние может быть изменено разными потоками.

Пример:

java
@Component
@Scope("prototype")
public class PrototypeBean {
    private int counter = 0;
    
    public void increment() {
        counter++; // Не потокобезопасно!
    }
}

Чтобы сделать его потокобезопасным:

  1. Используйте synchronized или другие механизмы синхронизации
  2. Избегайте изменяемого состояния (stateless)
  3. Используйте ThreadLocal переменные, если нужно хранить состояние на поток

Prototype scope лишь гарантирует уникальность экземпляра для каждого запроса, но не обеспечивает потокобезопасность самого класса.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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