锁定时,Singleton会话Bean调用顺序是否公平?

时间:2015-12-19 22:02:37

标签: concurrency locking singleton ejb

当使用启用了容器管理的并发的@Singleton类型的EJB并且对@Lock(LockType.WRITE)带注释的方法存在挂起的写锁定时,@ Lock(LockType.READ)方法的调用者可能会按顺序排队调用?

换句话说,如果读取锁定方法的多个调用等待写入锁定的调用者,那些读取锁定方法调用者是否会按照调用到达的顺序(假设没有超时发生)来调用它们?

我一直在测试这个并且结果有点矛盾。

1 个答案:

答案 0 :(得分:2)

EJB规范不保证单例会话bean锁定公平性,因此您不应做出任何假设。如果您的应用程序服务器提供了一些保证,我猜您可以依赖它,但您可能最好使用@ConcurrencyManagement(BEAN)并使用自己的锁来确保公平性。