调用EJB中静态实例的方法



我猜测我们的代码库中有一个不正确的代码,但我不确定。所以我们得到了这样的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"限制访问,否则两个调用都将同时运行。

相关内容

  • 没有找到相关文章

最新更新