相关问题: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
我怎么可能希望用这种多任务处理十几个浏览器会话?
我在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
所以我想知道,会话请求是否有同步的充分理由?如果没有,可以启用多线程吗?
答案 0 :(得分:1)
默认情况下,JSP是多线程的。
会话请求未同步。
问题在于如何生成请求,而不是Tomcat如何处理请求。