我猜我们的代码库中存在错误的代码,但我不确定。所以我们有这样的EJB:
@Stateless
public class MyEjb {
private static Something sg = new Something();
public void doSomething() {
sg.execute();
}
}
类Something是普通类:
public class Something {
public void execute() {
...
}
}
由于MyEJB是无状态EJB,因此方法doSomething可以同时调用多次。
以下是我的问题:如果doSomething()同时被调用了两次,那么其中一个调用将被阻止,直到第一个调用结束?我的猜测是它被阻止,因为只有一个静态实例 如果我是对的,上面的代码并不好,因为'Something'类的方法'execute'是我的EJB的瓶颈。
谢谢, 诉
答案 0 :(得分:1)
除非您使用“同步”块或“写锁定”限制访问,否则两个调用将同时运行。