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

Возникнут ли проблемы при базовой реализации @RestController с Endpoint и счетчиком, при множестве одновременных запросов

Да, возникнут проблемы с потокобезопасностью, если счетчик не синхронизирован. Пример проблемного кода:

java
@RestController
public class CounterController {
    private int count = 0;

    @GetMapping("/increment")
    public int increment() {
        return ++count; // Не потокобезопасно!
    }
}

Проблемы:

  1. Гонка данных (race condition) при ++count
  2. Возможны потерянные обновления
  3. Некорректные значения счетчика

Решение:

  1. Использовать AtomicInteger:
java
private AtomicInteger count = new AtomicInteger(0);

public int increment() {
    return count.incrementAndGet();
}
  1. Либо синхронизировать метод (но это хуже по производительности)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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