Он основан на требованиях, при которых шансы получить поток в состоянии простоя в такой ситуации вам следует использовать асинхронный сервлет, в противном случае мы не можем создать столько потоков
Если сервлет или фильтр достигнетпотенциально блокируя операцию при обработке запроса, он может назначить операцию асинхронному контексту выполнения и немедленно вернуть поток, связанный с запросом, в контейнер без генерации ответа.Операция блокировки завершается в контексте асинхронного выполнения в другом потоке, который может сгенерировать ответ или отправить запрос другому сервлету.
Чтобы включить асинхронную обработку в сервлете, задайте для параметра asyncSupported значение true в @Аннотация WebServlet выглядит следующим образом:
@ WebServlet (urlPatterns = {"/ asyncservlet"}, asyncSupported = true) открытый класс AsyncServlet расширяет HttpServlet {...}
Синхронный (классическая модель веб-приложений)) Синхронный запрос блокирует клиента до завершения операции, т.е. браузер не перестает отвечать на запросы.В этом случае механизм java-скриптов браузера блокируется.
Асинхронный (модель веб-приложения AJAX) Асинхронный запрос не блокирует клиента, т. Е. Браузер реагирует.В это время пользователь может выполнять и другие операции.В этом случае движок java-скриптов браузера не блокируется.
При синхронном взаимодействии оба активны одновременно, тогда как в асинхронном режиме не требуется активировать одновременно, например, асинхронный относится к обмену сообщениями там.блокирование операции для нового потока и запуск потока, связанного с контейнером
Веб-контейнеры на серверах приложений обычно используют поток сервера на запрос клиента.В условиях высокой нагрузки контейнерам требуется большое количество потоков для обслуживания всех клиентских запросов.Ограничения масштабируемости включают нехватку памяти или исчерпание пула потоков контейнера.Для создания масштабируемых веб-приложений необходимо убедиться, что ни один поток, связанный с запросом, не находится в режиме ожидания, поэтому контейнер может использовать их для обработки новых запросов.
Существует два распространенных сценария, в которых поток связан с запросом.можно сидеть без дела.
The thread needs to wait for a resource to become available or process data before building the response. For example, an application may need to query a database or access data from a remote web service before generating the response.
The thread needs to wait for an event before generating the response. For example, an application may have to wait for a JMS message, new information from another client, or new data available in a queue before generating the response.