2017-02-15 49 views
0

我正在向某些服務器並行發送請求,但它們的響應不是同時發生。我必須在html頁面上顯示響應。一種方法是等待所有的反應,當所有的反應到達時,給他們看。 我想要做的就是儘快展示答案,並且不要等待其他答覆。一個粗略的算法看起來像:動態顯示來自服務器的響應

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

我怎麼能在java中做到這一點?

回答

0

聽起來像你正在尋找Futures。它們允許你創建並行任務,將採取一切它需要執行的時間,並有方法得到的,這將返回null如果任務還沒有完成,所以你可以寫類似

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

而且退出週期得到你的價值與future.get();

後,有更多的東西,所以請通過this文章中看到,它雖小,但正好適合你所要求的

+0

雖然這在理論上可以回答這個問題,[它會更好的是](// meta.stackoverflow.com/q/8259)在這裏包含答案的重要部分,並提供鏈接供參考。 –

+0

@ cricket_007感謝您指出 –