我有一个需要等待一段时间的应用程序.它必须等到服务器填充几个数据字段.
服务器的API为我提供了一种请求数据的方法,很简单……
服务器的API还提供了一种接收我的数据的方法,一次一个字段.它并没有告诉我何时完成所有字段的填充.
在我的请求完成服务器处理之前,最有效的方法是什么?这是一些伪代码:
public class ServerRequestMethods {
public void requestData();
}
public interface ServerDeliveryMethods {
public void receiveData(String field, int value);
}
public class MyApp extends ServerRequestMethods implements ServerDeliveryMethods {
//store data fields and their respective values
public Hashtable myData;
//implement required ServerDeliveryMethods
public void receiveData(String field, int value) {
myData.put(field, value);
}
public static void main(String[] args) {
this.requestData();
// Now I have to wait for all of the fields to be populated,
// so that I can decide what to do next.
decideWhatToDoNext();
doIt();
}
}
我必须等到服务器完成填充我的数据字段,服务器不会让我知道请求何时完成.所以我必须继续检查我的请求是否已经完成处理.最有效的方法是什么?
wait()和notify(),一个守护while循环的方法,每当我被notify()唤醒时,检查我是否已经拥有了所有必需的值?
Observer和Observable,有一个方法可以在每次调用Observer.Update()时检查是否具有所有必需的值?
什么是最好的方法?谢谢.