加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

java-servlet何时释放其线程

发布时间:2020-12-13 20:57:50 所属栏目:Nginx 来源:网络整理
导读:假设没有存活,当Servlet容器充当独立服务器时,我假设直到将整个响应发送到客户端(例如Web浏览器)后,才会释放Servlet的线程.这是正确的假设吗? 但是,如果servlet在像Nginx这样的反向代理后面,会发生什么呢?响应传递到Nginx之后,线程是否被释放,或者直到响应

假设没有存活,当Servlet容器充当独立服务器时,我假设直到将整个响应发送到客户端(例如Web浏览器)后,才会释放Servlet的线程.这是正确的假设吗?

但是,如果servlet在像Nginx这样的反向代理后面,会发生什么呢?响应传递到Nginx之后,线程是否被释放,或者直到响应发送给其最终客户端(例如浏览器)时才保留线程?

更新:让我尝试使它更加清楚.

像nginx这样的响应从Servlet发送到代理仅需要几毫秒(例如2ms).但是,最终的响应可能要花费额外的80毫秒(或大约80毫秒)的时间,才能从Nginx发送到浏览器.一旦将响应发送到nginx,servlet就会释放线程/流,还是直到响应发送到浏览器(即整个80ms),servlet才会保留线程/流.

最佳答案
问题:我假设直到将整个响应发送到客户端(例如Web浏览器)后,才会释放Servlet的线程.这是正确的假设吗?

答:不,这是错误的. Servlet容器只会将内容写入套接字并返回.不能保证从write()方法返回的内容将确保响应已到达客户端.

问题:将响应传递到Nginx之后,或者直到响应发送给最终客户端(例如浏览器)时线程才保留?

回答:当Nginx在后面时,则Servlet容器的客户端是Nginx.它不知道实际的远程客户端.因此,一旦响应写入Nginx,线程将被释放.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读