Future.get () und InterruptedException Asynchronous Einfädeln

stimmen
1

Im mit asynchronen Einfädeln in meiner Anwendung mit Httpclient. Ich mache einen Anruf in die Zukunft Api mit wie so

mStrResults = (String) rssFuture.get();

dieser Aufruf versucht, eine HTML-Zeichenfolge zurückgegeben von meiner aufrufbare Httpclient-Methode call () abgerufen werden.

Was ich aber tun möchte, ist sicherzustellen, dass die Methode get lange nicht zu nicht warten, während die Methode call () ausgeführt wird. Sollte ich einen Timeout-Parameter übergeben, wenn rssFuture.get () aufrufen, oder ist es in Ordnung, nur mit einem InterruptedException catch-Block zu umgeben?

Auch gibt es eine Standard-Zeit, welche der asynchrone Thread vor einem InterruptedException werfen warten wird und wenn ja, kann ich einen benutzerdefinierten Wert eingestellt?

Veröffentlicht am 09/12/2008 um 15:44
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
3

Sie sollten einen Timeout - Parameter übergeben beim Aufruf rssFuture.get()und die Timeout fangen. Ein InterruptedException geschieht nur , wenn der Faden den Lauf Sie callbekommt mit der unterbrochenen Thread.interruptMethode oder wenn Sie die Aufruf - cancel(true)Methode in der Zukunft obj.

Beantwortet am 09/12/2008 um 16:12
quelle vom benutzer

stimmen
2

Sie sollten Zukunft verwenden. erhalten (long timeout, Timeunit Einheit) , und fängt Timeout. Es gibt kein Standard - Timeout für get (), wird es wartet immer .

InterruptedException wird nicht ausgelöst werden, wenn der Thread ruft Future.get () unterbrochen wird.

Beantwortet am 09/12/2008 um 16:07
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more