我有一个应用程序,它可以进行大量的多个servlet调用。如何确保在完成特定的servlet X处理之前,不会调用Y,Z的其他servlet实例。
SingleThreadModel或同步将确保每个servlet只调用一个线程。但是,这可能不适用于多个servlet。
答案 0 :(得分:0)
为每个服务器调用使用回调机制。第一次服务器呼叫失败,您可以拨打第二个电话。
答案 1 :(得分:0)
您可以通过定义自己的锁来实现手动同步。
例如,声明一个静态Object用作信号量:
public static final Object MY_LOCK = new Object();
和你要同步的地方你可以这样使用它:
public void someMethod() {
synchronized(MY_LOCK) {
// do stuff that may not be called at same time
}
}
public void someOtherMethod() {
synchronized(MY_LOCK) {
// do other stuff that may not be called at same time
}
}
这样你可以在不同的方法(或你的情况下的servlet)中使用相同的Lock。