java - 有状态 session bean 多线程访问

标签 java multithreading concurrency ejb stateful-session-bean

EJB 3.2 规范说明如下:

By default, clients are allowed to make concurrent calls to a stateful session object and the container is required to serialize such concurrent requests. Note that the container never permits multi-threaded access to the actual stateful session bean instance.

对我来说,并发访问和多线程访问似乎是等价的。那么如何在禁止多线程的情况下对有状态 EJB 进行并发调用呢?

最佳答案

你是对的:并发调用只能用多线程进行。因此,在谈到并发性时,涉及到多个线程。

规范明确指出不允许容器同时访问一个有状态 session bean 实例。如果存在并发调用(来自多个线程),容器必须将它们序列化。

请注意,当然可以有多个有状态 session bean 的实例,当然可以由多个客户端访问。

另外 - 这似乎让您感到困惑 - 规范说允许客户端(不是容器)进行并发调用,但容器必须将它们序列化。

关于java - 有状态 session bean 多线程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23287054/

相关文章:

java - Java 中的按键阻塞映射

java - DataNucleus/AppEngine - 类路径中同一插件的多个 JAR 版本

java - 使用 JPA 语法时,具有复杂键类的 JpaRepository 验证失败,错误为 "Validation failed for query for method"

ios - 从数组访问 NSNumber 时崩溃

c++ - 专用线程中 QApplication 中的输入小部件会导致 QTimer 从错误的线程停止

c# - ConcurrentStack - 从底部删除或等效功能

java:减少 ​​vs anyMatch vs 包含

升级到新计算机后所有程序出现 Java.Lang.IllegalAccessError

java - 如果使用 java.util.concurrent 数据结构,是否需要使用 "synchronized"关键字来获取/添加?

concurrency - 如何在 Rust 中使用锁?