2015-12-11 17 views
1

相关问题:https://stackoverflow.com/questions/29616394/tomcat-multithreaded-application-issueTomcat的不是多线程的会话请求

这里是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

请详细说明。你有什么问题?你想看到什么输出? – rickz

+0

你如何调用JSP?手动从浏览器中,或以编程方式(通过JMeter左右某种性能测试)? –

+0

编辑了这个问题,以澄清我认识到的问题。 – user3338098

回答

1

默认情况下,JSP是多线程的。

会话请求不同步。

问题在于你如何生成请求,而不是Tomcat如何处理它们。