2017-02-15 18 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. Они позволяют создать параллельную задачу, которая будет принимать все время, это должно быть выполнено, и есть способ получить, который будет возвращать нулевое значение, если задача еще не завершена, так что вы можете написать что-то вроде

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

И после выхода из цикла получить значение с future.get();

есть больше к этому, поэтому, пожалуйста, через this статьи, это небольшое, но точно соответствует то, что вы просите

+0

Хотя это теоретически может ответить на вопрос, [это было предпочтительнее] (// meta.stackoverflow.com/q/8259), чтобы включить здесь основные части ответа и предоставить ссылка для справки. –

+0

@ cricket_007 благодарю вас за указание –

 Смежные вопросы

  • Нет связанных вопросов^_^