我可以重用当前正在等待或睡眠的tomcat线程吗?

时间:2015-06-04 06:56:08

标签: java multithreading tomcat

我的java web应用程序中有以下场景。

应用程序接受的每个请求(基于tomcat)必须等待至少2分钟 用于某些数据处理。初始请求反过来创建一个线程池来处理数据。当初始请求线程正在等待处理完成时,它是否可以用于接收进一步的传入请求?

1 个答案:

答案 0 :(得分:1)

没有。应用服务器的业务是接受和处理传入的http连接 - 您可以通过尽可能短的时间占用一个连接来帮助它。你自己这样做会完全污染你自己的代码与appserver职责,你不应该想进入这种业务。

对您的问题的评论为替代解决方案提供了一些很好的建议。只要您继续坐在连接(或请求/响应对)上,它就会很忙,并且不适用于应用程序服务器。

或者,使用您的负载配置文件,您可能只需增加并发处理的请求数量 - 如果他们真的 大部分空闲等待,这可能是一个很好的快速解决方案:当您长时间运行的请求正在等待后台处理时,您可以处理许多其他请求。不是我认为这很优雅,但它可能是最快的解决方案。