Должен ли мы установить прерванный флаг при ловле InterruptedException
внутри задачи, управляемой ExecutorService
? Или мы просто проглотим InterruptedException
?InterruptedException внутри ExecutorService
Пример:
final ExecutorService service = ...;
final Object object = ...;
service.submit(() -> {
try {
while (!condition) {
object.wait();
}
} catch (final InterruptedException exception) {
Thread.currentThread().interrupt(); // yes or no?
}
});
Это зависит от контекста и требований. Правило большого пальца, не проглатывайте, если вы не знаете, что делаете, и имеете веские причины. –
Внутри «ExecutorService», в чем разница между размахом и не сглаживанием исключения? Как работает «Исполнитель» в обоих случаях? –