Встречается на собеседованиях • сегодня
Как Servlet работает в многопоточной среде
Сервлеты по умолчанию потоконебезопасны - один экземпляр сервлета обслуживает все запросы. Контейнер (Tomcat/Jetty) создает новый поток для каждого HTTP-запроса, но использует один экземпляр сервлета.
Основные проблемы:
- Общие поля класса сервлета - источник race condition
- Нельзя хранить состояние запроса в полях класса
Пример потоконебезопасного кода:
java
public class UnsafeServlet extends HttpServlet {
private int count; // Проблема! Общее состояние
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
count++; // Race condition
resp.getWriter().write("Count: " + count);
}
}Решение:
- Избегать полей класса (использовать локальные переменные)
- Для общего состояния использовать синхронизацию или concurrent-коллекции
- Реализовать SingleThreadModel (устаревший подход)
- Использовать ThreadLocal для данных, специфичных для потока
Лучшая практика - проектировать сервлеты как stateless-компоненты.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы