В то время как Tomcat может управлять большим количеством подключений, чем текущих запросов (что означает, что работа с этими запросами активно выполняется), текущие запросы ограничены количеством потоков обработки запросов.
Итак, если у вас 200 потоков, вы можете одновременно работать только с 200 запросами. Остальные 300 запросов будут находиться в очереди до тех пор, пока не станет доступен поток обработки запросов.
Это Вышеупомянутая ситуация имеет место для «обычных» запросов с использованием стандартного HTTP-запроса-ответа.
Если вы переключаетесь в асинхронный режим, все меняется. Если вы обновите соединение до Websocket, все также изменится. Но это совершенно разные модели ввода-вывода и диспетчеризации, в которых термин «запрос» теряет свое первоначальное значение.
Я считаю, что Tomcat выделяет один поток на соединение для обновленного Websocket соединение, и этот поток будет обрабатывать соединение, а не другие. Таким образом, при обновлении до Websocket вы превращаете модель диспетчеризации запросов Tomcat из одного потока на запрос в один поток на соединение.