java - java tomcat是以 "first come first serve"形式还是并行处理数据?

标签 java tomcat

好的,我刚刚意识到这个问题。

假设您使用 Java + Tomcat 构建您的网络应用程序。

Tomcat同时收到来自2个客户端的2个调用。服务器在第二次调用之前接收到第一次调用(将调用一系列方法并返回一个整数)。

调用 1:

String passwordProvidedByUser=action.getPasswordFromClient();
String passwordFromDB=data.getPasswordFromDB();
if (passwordFromDB.equals(passwordProvidedByUser)){
      boolean updated=data.updateInfo();
}

调用 2:

 String newPassword=action.getPasswordFromClient();
boolean changePwd=data.changePwd(newPassword);

因此,如果 Call1 完成了 String passwordFromDB=data.getPasswordFromDB(); 但还没有运行 boolean updated=data.updateInfo(); 而 call 2 已经运行boolean changePwd=data.changePwd(newPassword);。这意味着用旧密码调用 1 boolean updated=data.updateInfo();

我的问题是 Tomcat 服务器/Java 会在开始处理第二次调用之前完成第一次调用的所有操作并将结果返回给第一次调用吗?

或者 Tomcat 服务器/Java 刚刚开始处理第二个,而它仍在处理第一个(即服务器尚未向第一个返回结果,但已经开始处理第二个)?

最佳答案

每个调用都会进入队列,从工作线程获取它的位置进行处理 - 是的,有一个线程池负责处理请求,因此请求处理的顺序相当不确定。

关于java - java tomcat是以 "first come first serve"形式还是并行处理数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22149364/

相关文章:

java - 获取单个 ScrollableResults 行

java - Android - 单元测试以检查按钮单击是否成功

jakarta-ee - Java EE 客户端-服务器架构中的安全性

sql-server - 如何从 SQL 服务器发出 HTTP 请求?

java - 类型 'org/eclipse/equinox/http/servlet/HttpServiceServlet'(当前帧,堆栈[0])不可分配给 'javax/servlet/http/HttpServlet'

与 HAMR 配合使用的 Java 虚拟机版本?

java - 使用 Jackson @JsonDeserializer 将一个自定义 Java 字段映射到多个 JSON 字段

java - Spring MVC 3.0 注解 - 对话形式 - 初学者问题

tomcat - tomcat 日志中的 "TLD skipped"

java - 带tomcat的eclipse——eclipse修改server.xml