gpt4 book ai didi

java - 具有并发慢速TCP客户端连接的tomcat Java NIO

转载 作者:搜寻专家 更新时间:2023-10-30 21:12:36 26 4
gpt4 key购买 nike

我的理解

没有 NIO:
对于每个 keepAlive 连接,服务器继续阻塞一个线程。

使用 NIO:
这个连接器有几个轮询器线程,用于为所有连接的用户保持连接,而工作线程在数据(新的 HTTP 请求)可用时被调用

现在:如果我有一个简单的 servlet,它向客户端(浏览器)返回一个 100 KB 的字符串。

....
String HunderdKBString = "reallylongstring"
PrintWriter out = response.getWriter();
out.println(HunderdKBString);
....

如果有 1 KB 连接的客户端连接,那么它需要大约 100 秒来接收字符串。
那么java线程会被阻塞100秒左右吗?

TCP缓冲区、JavaOutputStreamWriter或其他缓冲区如何影响线程阻塞时间?

PS:在 centos 7 中使用 apache-tomcat-8.0.24 和 oracle JDK 1.7。

编辑:如前所述,线程确实会被阻塞,而缓冲区可以减少线程阻塞时间。如何通过使用这些缓冲区来优化 tomcat/OS 以减少线程阻塞时间?

如何在生产环境中检测到 tomcat 由于连接到许多慢速连接客户端而导致线程不足?

最佳答案

So is it that the java thread will be blocked for around 100 sec?

是的。

How does TCP buffer, Java OutputStream or Writer or other buffers affect the thread block time?

如果缓冲区足够大以容纳发送的数据,则发送线程不会阻塞。

关于java - 具有并发慢速TCP客户端连接的tomcat Java NIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39190373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com