我想取消以下任务
fooFuture = executor.submit(() -> {
bar1();
bar2();
bar3();
});
条形函数未实现InterruptedException
。
有没有办法在没有在每条指令后检查Thread.currentThread().isInterruped();
的情况下捕获中断?
答案 0 :(得分:1)
总之,没有。当然,您不必在每个行之后进行检查,但是可能需要很长时间才能执行的方法负责正确处理中断。如果他们不这样做,不幸的是,你运气不好。
答案 1 :(得分:1)
我相信,如果在执行过程中没有实现InterruptedException,那么在Java中就没有办法杀死一个线程。如果线程正在执行,它只是设置一个标志,并由线程注意它。如果线程正在等待或正在休眠,它将抛出InterruptedException。
终止线程正在运行的进程。 (例如,调用System.exit(int)。)