1

コードベースに間違ったコードがあると思いますが、よくわかりません。したがって、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()が同時に2回呼び出された場合、最初の呼び出しが終了するまで呼び出しの1つがブロックされますか?静的インスタンスが1つしかないため、ブロックされていると思います。
私が正しければ、クラス「Something」のメソッド「execute」が私のEJBのボトルネックであるため、上記のコードは適切ではありません。

ありがとう、V。

4

1 に答える 1

1

「同期」ブロックまたは「書き込みロック」を使用してアクセスを制限しない限り、両方の呼び出しが同時に実行されます。

于 2012-09-04T10:54:07.923 に答える