У меня есть код, подобный этому, который находится внутри run()
метода Runnable
и нескольких экземпляров этого Runnable
запускается,Как обрабатывать InterruptedException BlockingQueue?
do{
try{
String contractNum=contractNums.take();
}catch(InterruptedException e){
logger.error(e.getMessage(), e);
}
}while(!("*".equals(contractNum)));
Где contractNums
является BlockingQueue<String>
совместно несколько потоков. В этой очереди есть отдельные Runnables
.
Я не уверен, что последующие шаги после ловли InterruptedException
, я должен прекратить эту нить, повторно бросает RuntimeException
(так моя while
цикл завершается) или попытаться взять следующий элемент из contractNum queue
снова и игнорируя InterruptedException
?
Я не уверен, что InterruptedException
следует рассматривать как фатальное условие для прерывания потока или сохранения его во время цикла.
Просьба предложить.
Спасибо. Нет, нет намеренных прерываний. –
Тогда вам не нужно предпринимать никаких специальных действий. – Kayaman