JAX-WS Web サービスのコード例を参照してください。
@WebService
public class ClassA {
@WebMethod
public synchronized void doSomething() {
new Thread(new Runnable() { // Thread X
@Override
public void run() {
synchronized (ClassA.this) {
// Do something which should be run in this separate
// thread, but not twice at the same time
try {
System.out.println("Thread X Start");
Thread.sleep(10000);
System.out.println("Thread X End");
} catch (InterruptedException e) {
}
}
}
}).start();
}
}
WebMethod が 2 回呼び出された場合、2 番目の呼び出しはスレッド X が完了するのを待っています。なぜですか?