VademécumVademécum\InterruptedException (excepción)

InterruptedException (excepción)

class java.lang.InterruptedException

        extends Exception

 

Si una tarea quiere despertar otra, le manda una interrupción

otra.interrupt();

 

Si la otra tarea está activa, lo único que pasa es que se marca el flag de interrupción.

Pero si la otra tarea está bloqueada esperando a que ocurra algo, en lugar de marcar el flag, se le lanza una InterruptedException. El efecto es que la tarea se despierta y sabe que es porque la ha interrumpido otra.

Si no hacemos nada, la interrupción se limita a despertar a la tarea.

A veces lo que se hace es aprovechar el manejador para activar el flag y centralizar en otro sitio el manejo de la interrupción:

try {

...;

} catch (InterruptedException e) {

interrupt();

}

 

Ver “interrupciones”.

principio
principio