我猜测我们的代码库中有一个不正确的代码,但我不确定。所以我们得到了这样的EJB:
@Stateless
public class MyEjb {
private static Something sg = new Something();
public void doSomething() {
sg.execute();
}
}
这类东西是一个正常的类:
public class Something {
public void execute() {
...
}
}
由于MyEJB是无状态EJB,因此doSomething方法可以同时调用更多次。
我的问题来了:如果doSomething()同时被调用了两次,那么其中一个调用将被阻止,直到第一个调用完成?我的猜测是它被阻塞了,因为只有一个静态实例
如果我是对的,上面的代码就不好了,因为类Something的方法execute是EJB的瓶颈。
谢谢,V.
除非使用"synchronized"块或"Write Lock"限制访问,否则两个调用都将同时运行。