Зачем устанавливать бит прерывания в Callable

Итак, этот ресурс (http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html) предложить установить бит прерывания в потоке, когда этот поток не обрабатывает само прерывание, "так что код выше в стеке вызовов может узнать о прерывании и ответить на него, если захочет ».

Позволять'скажи яиспользуя ExecutorService для запуска чего-либо в другом потоке. Я создаю Callable и передаю этот Callable в ExecutorService.submit (), который возвращает Future. Если Callable прерывается, а затем сбрасывает бит прерывания, связанное Future не сгенерирует InterruptedException при вызове Future.get (). Так что будет целью установки прерванного бита в Callable, если это Будущее - единственный способ, которым основной Поток имеет доступ к порожденному Потоку.

class MyCallable implements Callable {
  @Override
  public String call() {
    while (!Thread.currentThread().isInterrupted()) {
    }
    Thread.currentThread().interrupt();
    return "blah";
  }
}

 ExecutorService pool = makeService();
 Future future = pool.submit(new MyCallable());
 // Callable gets interrupted and the Callable resets the interrupt bit.
 future.get(); // Does not thrown an InterruptedException, so how will I ever know that the Callable was interrupted?

Ответы на вопрос(2)

Ваш ответ на вопрос