У моего приложения очень высокая средняя загрузка ЦП, причина в том, что на причале запускается много потоков для обработки запроса, и он может блокировать данные, когда данные готовы, многие потоки становятся работоспособными. Я хочу заставить причал ждать, пока все данные не будут прочитаны, а затем запустить поток для вызова сервлета, в этом случае сервлет никогда не будет заблокирован.
Это возможно?
1 ответ
Невозможно.
Jetty нужен поток для чтения самого тела содержимого запроса (для таких вещей, как mime multitpart, параметры формы и т. Д.), Или для использования этого потока для отправки в ваше веб-приложение, чтобы ваш сервлет прочитал тело содержимого запроса.
Затем есть дополнительная возможность асинхронного ввода-вывода (представленная в Servlet 3.1), которая позволяет вам писать сервлет, который использует поток только тогда, когда он может читать или записывать в сокет, позволяя потоку вернуться к ThreadPool, если ни один из них может быть сделано.
Похожие вопросы
Новые вопросы
jetty
Eclipse Jetty - это широко используемый асинхронный HTTP-сервер и механизм сервлетов на основе Java, поддерживающий протоколы HTTP / 1.0, HTTP / 1.1, HTTP / 2 и WebSocket.