Мой нестандартный
Без NIO:
Для каждого сервера соединений keepAlive продолжают блокировать поток.
С NIO:
Этот соединитель имеет пару потоков poller, используемых для поддержания соединения для всех подключенных пользователей, в то время как рабочие потоки вызываются всякий раз, когда доступны данные (новый HTTP-запрос)
Сейчас: Если у меня есть простой сервлет, который возвращает строку 100 КБ клиенту (браузеру).
....
String HunderdKBString = "reallylongstring"
PrintWriter out = response.getWriter();
out.println(HunderdKBString);
....
Если клиент с подключением 1 KB подключается, для получения строки потребуется около 100 секунд.
Так ли это, что поток java будет заблокирован около 100 секунд?
Как буфер TCP, Java OutputStream
или Writer
или другие буферы влияют на время потока потока?
PS: использование apache-tomcat-8.0.24 в centos 7 с оракулом JDK 1.7.
EDIT: Как упоминалось, поток блокируется, и буфер может уменьшить время блокировки потока. Как оптимизировать tomcat/OS для сокращения времени блока потока с помощью этого буфера?
Как можно обнаружить в рабочей среде, если tomcat голодает из-за потока из-за того, что к нему подключен много клиентов медленного соединения?