¿Bajo qué condiciones bloqueará BlockingQueue.take una excepción interrumpida?

Supongamos que tengo un hilo que consume elementos producidos por otro hilo. Su método de ejecución es el siguiente, con inQueue como BlockingQueue

boolean shutdown = false;
while (!shutdown) {
    try {
        WorkItem w = inQueue.take();
        w.consume();
    } catch (InterruptedException e) { 
        shutdown = true;
    }
}

Además, un hilo diferente indicará que no hay más elementos de trabajo al interrumpir este hilo en ejecución. Tomará () lanzará una excepción interrumpida si no es necesario bloquearla para recuperar el siguiente elemento de trabajo. es decir, si el productor señala que se ha completado el llenado de la cola de trabajo, ¿es posible dejar accidentalmente algunos artículos en la cita o perder la interrupción?

Respuestas a la pregunta(5)

Su respuesta a la pregunta