相关问题:https://stackoverflow.com/questions/29616394/tomcat-multithreaded-application-issue
这是jsp文件:
<%
int id = new java.util.Random().nextInt(10000);
System.out.println("STARTING REQUEST: "+id);
Thread.sleep(10000);
System.out.println("ENDING REQUEST: "+id);
%>
相当简单,但输出是
STARTING REQUEST: 6009
ENDING REQUEST: 6009
STARTING REQUEST: 2792
ENDING REQUEST: 2792
STARTING REQUEST: 4504
ENDING REQUEST: 4504
我怎么可能希望用这种多任务处理甚至十几个浏览器 session ?
我在 tomcat 中缺少什么设置?这是一个简单的安装,几乎没有任何变化......
这是我搞砸的 server.xml 的部分:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
<Connector executor="tomcatThreadPool"
port="38765" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxThreads="150" />
但是,如果我从不同的浏览器运行每个请求,我会得到这种输出
STARTING REQUEST: 6009
STARTING REQUEST: 2792
STARTING REQUEST: 4504
ENDING REQUEST: 2792
ENDING REQUEST: 6009
ENDING REQUEST: 4504
所以我想知道,同步 session 请求是否有充分的理由?如果没有,能否开启多线程?
最佳答案
默认情况下,JSP 是多线程的。
session 请求不同步。
问题在于您如何生成请求,而不在于 Tomcat 如何处理它们。
关于multithreading - Tomcat 不是多线程 session 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214083/