multithreading - Tomcat 不是多线程 session 请求

标签 multithreading jsp tomcat

相关问题: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/

相关文章:

java - 保护 Java Web 应用程序不被复制

javascript - 无法更改 Bootstrap 中表格列的宽度

java - 如果我使用 java 1.4 版本编译代码,java 1.7 JVM 是否能够运行 .class 文件

java - @PreDestroy 没有被调用以用于 Runnable

c# - 同时获取同一个 azure blob 的租约

java - CompletableFuture 多线程、单线程并发,还是两者兼而有之?

javascript - 我如何将列表元素与选择下拉列表链接起来

tomcat - 如何使用 NetBeans 8 配置和启动 TomCat 7

java - 如何使 Tomcat 中的日志轮换工作

java - 直到退出并再次运行应用程序后,服务才会启动 - Android