Future.get () y InterruptedException Asincrónico subprocesamiento

votos
1

Estoy usando subprocesamiento asincrónico en mi aplicación CON httpClient. Hago una llamada usando Future Api como tal

mStrResults = (String) rssFuture.get();

esta llamada intenta recuperar una cadena html devuelta desde mi método calllable httpClient call ().

Sin embargo, lo que quiero hacer es asegurarme de que el método get no espere demasiado mientras se ejecuta el método call (). ¿Debo pasar un parámetro de tiempo de espera cuando llamo a rssFuture.get () o está bien rodear con un bloque de catch InterruptedException?

Además, ¿hay un tiempo predeterminado que esperará el subproceso asíncrono antes de lanzar una excepción InterruptedException y, de ser así, puedo establecer un valor personalizado?

Publicado el 09/12/2008 a las 15:44
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
3

Debería pasar un parámetro de tiempo de espera al llamar rssFuture.get()y atrapar la excepción TimeoutException. Una interruptedException solo ocurrirá si el hilo que ejecuta el tu callse interrumpe con el Thread.interruptmétodo o si llamas al cancel(true)método en el obj futuro.

Respondida el 09/12/2008 a las 16:12
fuente por usuario

votos
2

Deberías usar Future. get (tiempo de espera prolongado, unidad TimeUnit) y captura TimeoutException. No hay un tiempo de espera predeterminado para get (), esperará por siempre .

InterruptedException no se lanzará a menos que el hilo que llama a Future.get () se interrumpa.

Respondida el 09/12/2008 a las 16:07
fuente por usuario

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