使用未实现InterruptedException

时间:2017-06-05 13:20:35

标签: java multithreading future

我想取消以下任务

fooFuture = executor.submit(() ->  {
    bar1();
    bar2();
    bar3();
});

条形函数未实现InterruptedException

有没有办法在没有在每条指令后检查Thread.currentThread().isInterruped();的情况下捕获中断?

2 个答案:

答案 0 :(得分:1)

总之,没有。当然,您不必在每个行之后进行检查,但是可能需要很长时间才能执行的方法负责正确处理中断。如果他们不这样做,不幸的是,你运气不好。

答案 1 :(得分:1)

我相信,如果在执行过程中没有实现InterruptedException,那么在Java中就没有办法杀死一个线程。如果线程正在执行,它只是设置一个标志,并由线程注意它。如果线程正在等待或正在休眠,它将抛出InterruptedException。

终止线程正在运行的进程。 (例如,调用System.exit(int)。)