Concurrency 锁定时单例会话Bean调用顺序公平吗?

Concurrency 锁定时单例会话Bean调用顺序公平吗?,concurrency,locking,singleton,ejb,Concurrency,Locking,Singleton,Ejb,当使用启用了容器管理并发的@Singleton类型的EJB时,并且有一个挂起的对@lock(LockType.write)注释方法的写锁时,@lock(LockType.READ)方法的可能调用者是否会按调用顺序排队 换句话说,如果对读锁定方法的多个调用挂起一个写锁定调用程序,那么这些读锁定方法调用程序是否会按照调用到达的顺序完成调用(假设没有超时发生) 我已经对此进行了测试,得到了一些相互矛盾的结果。EJB规范没有保证单例会话bean锁的公平性,因此您不应该做任何假设。如果您的应用程序服务器做

当使用启用了容器管理并发的@Singleton类型的EJB时,并且有一个挂起的对@lock(LockType.write)注释方法的写锁时,@lock(LockType.READ)方法的可能调用者是否会按调用顺序排队

换句话说,如果对读锁定方法的多个调用挂起一个写锁定调用程序,那么这些读锁定方法调用程序是否会按照调用到达的顺序完成调用(假设没有超时发生)


我已经对此进行了测试,得到了一些相互矛盾的结果。

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