Estoy desarrollando una aplicación de subprocesos múltiples para hacer conexiones a servidores externos, cada uno en subprocesos separados, y se bloqueará hasta que haya una entrada. Cada uno de estos extiende la clase Thread. En aras de la explicación, llamemos a estos "hilos de conexión".Java: ¿cómo atrapo InterruptedException en un hilo, cuando es interrumpido por otro hilo?
Todos estos hilos de conexión se almacenan en un hashmap simultáneo.
Luego, permito la llamada al método de servicios web RESTful para cancelar cualquiera de los hilos. (Estoy usando Grizzly/Jersey, entonces cada llamada es un hilo en sí mismo).
Recupero el hilo de conexión específico (del hashmap) y llamo al método de interrupción() en él.
Entonces, aquí está la pregunta, dentro del hilo de conexión, ¿cómo atrapo la InterruptedException? (Me gustaría hacer algo cuando el hilo de conexión es detenido por un comando RESTful externo.)
Bien, AFAIK, cuando un hilo arroja InterruptedEx. se propagará hasta el hilo que inició la excepción arrojando hilo. Es en ese hilo padre que puedes atrapar el IE. –
Acabo de hacer un experimento para rodear el código que inicia el hilo de conexión, y el compilador advierte que la InterruptedException no se lanza. – ikevin8me
Además, el subproceso principal que inició esos hilos de conexión no entra en un estado de espera o inactividad, por lo que significa (o al menos eso creo) que deja de existir después de haber iniciado todos los subprocesos secundarios. – ikevin8me