Frage

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 meinem aufrufbare Httpclient-Methode call () abgerufen werden.

Was ich will, aber zu tun 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, mit einem InterruptedException catch-Block nur 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?

War es hilfreich?

Lösung

Sie sollten einen Timeout-Parameter übergeben, wenn rssFuture.get() Aufruf und die Timeout fangen. Ein InterruptedException geschieht nur, wenn der Thread die Ihre call läuft mit dem Thread.interrupt Verfahren unterbrochen wird oder wenn Sie die cancel(true) Methode in der Zukunft obj nennen.

Andere Tipps

Sie sollten zukünftige Verwendung. get (long timeout, Timeunit Einheit) und fangen Timeout. Es gibt kein Standard-Timeout für get (), wird es warten immer .

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top