В Servlet 3.0 была введена концепция обработки async. Таким образом, все книги говорят, что устраняет требование по одному потоку в запросе. Я тестировал это, и да, это действительно работает. Теперь у меня есть простой сервлет, в котором пользователи запускают HTTP-запрос в режиме синхронизации. Поток просто спит в течение 1 секунды, а затем отвечает клиенту. Когда я тестирую нагрузку в этом режиме, сервер может обрабатывать только 4 запроса в секунду. Теперь я меняю режим синхронизации на режим асинхронизации и создаю новый поток по запросу, чтобы освободить исходный поток HTTP обратно в пул. Опять же, новый поток инициирует спать в течение 1 секунды и отвечает обратно. Однако этот режим очень хорош, он обрабатывает сотни запросов в секунду.Асинхронная обработка J2EE
Теперь, на всех книгах и в статьях говорится, что сервер имеет ограниченное количество ресурсов, поэтому сохранение одного потока за запрос не является хорошим. и т. д. В обоих сценариях у меня есть один поток для запроса, основное отличие в первом - это поток HTTP, а во втором - мой пользовательский поток. Теперь вопрос в том, есть ли что-то особенное в потоках HTTP, чем мои пользовательские потоки? В конце концов, в обоих случаях у нас есть один поток для запроса, почему первый из них плохо работает, а второй - нет? Я прошел через многие документы, книги никому не объясняют эту сложную деталь. Вы можете мне что-то сказать? Благодаря