Futuro.get() y InterruptedException Asincrónica roscado
-
20-08-2019 - |
Pregunta
Im usando asincrónica roscado en mi aplicación CON httpClient.Puedo hacer una llamada usando el Futuro de la Api, como así
mStrResults = (String) rssFuture.get();
este intentos de llamada para recuperar una cadena html de regresar de mi Exigible httpClient método call ().
Lo que yo quiero hacer, sin embargo, es asegurarse de que el método get no espere demasiado tiempo mientras se ejecuta el método call ().Debo pasar un parámetro de tiempo de espera cuando se llama a rssFuture.get (), o bien sólo envolvente con una InterruptedException bloque catch?
También hay un tiempo predeterminado que el asincrónica hilo va a esperar antes de lanzar un InterruptedException y si es así puedo establecer un valor personalizado?
Solución
Usted debe pasar un parámetro de tiempo de espera cuando se llama a rssFuture.get()
y coger el TimeoutException.Un InterruptedException sólo ocurrirá si el hilo de la su call
se interrumpe con la Thread.interrupt
método o si se llama a la cancel(true)
método en el Futuro obj.
Otros consejos
Debería usar Future. get (tiempo de espera largo, unidad TimeUnit) y captura TimeoutException. No hay tiempo de espera predeterminado para get (), esperará para siempre .
InterruptedException no se lanzará a menos que se interrumpa el hilo que llama a Future.get ().