public class NoncancelableTask {
public Task getNextTask(BlockingQueue<Task> queue) {
boolean interrupted = false;
try {
while (true) {
try {
return queue.take();
} catch (InterruptedException e) {
interrupted = true;
// fall through and retry
}
}
} finally {
if (interrupted)
Thread.currentThread().interrupt();
}
}
interface Task {
}
}
据我所知,设置中断状态允许此方法的调用者根据方法策略保留中断状态以对其执行某些操作。
然而,Goetz还说这种方法用于“不支持取消的活动”
所以我的问题是,如果它甚至不会进入finally块并将调用堆栈备份给其调用者,那么甚至是这样做的重点是什么?