java - 共享对象中是否存在竞争条件?

标签 java jakarta-ee servlets

如果我有一个共享对象,它保存在一个 httpsession 中。

如果我不时修改它而没有任何并发​​更改(例如,我的客户信息保存在 session 中并且一次只能由一个和同一用户(此信息的所有者)访问,是否有机会与多线程等相关的某种问题?

流程示例: 对象保存在 session (线程 1)中。 对象被线程修改,即为请求1服务(用户更改了他的数据并将其保存在 session 中)。 对象被线程修改,即服务于 request2(用户使用他的用户信息打开页面)。

页面上由 request2 呈现的数据是否有可能过时(没有完成 ajax 或其他异步操作)?

更新: 我的问题是,它感觉像是对共享资源的顺序访问,它保存在 httpsession 中(绑定(bind)到具体的登录用户)。这是主要原因,我不想使用易变的东西或同步。

最佳答案

当然——只要多个线程可以访问相同的数据,就有可能出现问题。

用户可以打开多个选项卡/窗口并发出近乎同时的请求。这些请求将以不确定的时间和顺序进行处理。

关于java - 共享对象中是否存在竞争条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11972475/

相关文章:

java - openejb 嵌入式容器找不到 persistence.xml

java - Servlet、JSP、JPA - 未找到属性异常

java - 在 Azure AD B2C 注册页面上添加自定义电话号码字段

java - 从哪里获得 Java Runtime Redistributables?

java - 找不到部署描述符

jsp - Java 前端 Controller

java - Servlet/JSP 应用程序中的 JDBC 连接方法

Java jTable MouseListener 不工作

java - 我们是否需要声明方法可以抛出的未经检查的异常?

java - 从独立客户端访问部署在 JBoss 7.1.1 上的 WAR 中的 @Remote EJB