我的未启动
没有NIO:
对于每个keepAlive连接,服务器都会继续阻止一个线程。
使用NIO:
这个连接器有几个轮询线程,用于为所有连接的用户保持连接的有效性,同时只要数据(新的HTTP请求(可用,就会调用工作线程
现在:如果我有一个简单的servlet,它会向客户端(浏览器(返回一个100KB的字符串。
....
String HunderdKBString = "reallylongstring"
PrintWriter out = response.getWriter();
out.println(HunderdKBString);
....
如果连接了1 KB的客户端,那么接收字符串大约需要100秒
那么,java线程会被阻塞大约100秒吗?
TCP缓冲区、Java OutputStream
或Writer
或其他缓冲区如何影响线程块时间?
附言:在centos 7中使用apache-tomcat-8.0.24与oracle JDK 1.7。
编辑:如前所述,线程确实会被阻塞,缓冲区可以减少线程阻塞时间。。如何乐观tomcat/OS通过使用这些缓冲区来减少线程阻塞时间?
如果tomcat由于连接到它的许多连接缓慢的客户端而导致线程不足,如何在生产环境中检测它?
那么,java线程会被阻塞大约100秒吗?
是的。
TCP缓冲区、Java OutputStream或Writer或其他缓冲区如何影响线程块时间?
如果缓冲区足够大,可以容纳发送的数据,则发送线程不会阻塞。