0

我正在向某些服务器并行发送请求,但它们的响应不会同时出现。我必须在 html 页面上显示响应。一种方法是等待所有响应,当所有响应到达时,显示它们。我想要做的是尽快显示响应,而不是等待其他响应。粗略的算法如下所示:

while(all the responses don't come or timeout occurs)
    waitForResponse();
    if(responseArrived==true){
         //put it on html page
    }
}

我怎样才能在java中做到这一点?

4

1 回答 1

0

听起来您正在寻找Futures。它们允许您创建一个并行任务,该任务将花费所有需要执行的时间,并具有 get 方法,如果任务尚未完成,该方法将返回 null,因此您可以编写类似

while(!future.isDone()){
  Thread.sleep(1000);
}

并在退出周期后获得您的价值future.get();

还有更多,所以请看这篇文章,它很小但完全符合您的要求

于 2017-02-15T18:28:58.057 回答