并发性 - 中断未来而不取消它
2022-09-04 22:27:02
有没有办法在不取消未来的情况下中断它?
布尔取消(布尔值可能中断)
尝试取消此任务的执行。如果任务已完成、已取消或由于某些其他原因无法取消,则此尝试将失败。如果成功,并且在调用 cancel 时此任务尚未启动,则此任务应永远不会运行。如果任务已启动,则 mayInterruptIfRunning 参数确定是否应中断执行此任务的线程以尝试停止该任务。
要捕获中断,我们必须正确捕获中断异常或检查 Runnable/Callable 方法中的 isInterrupted() 方法。
但是没有办法使用“未来”接口中断正在运行的未来
由于所有线程都在执行器服务池中,因此没有人可以执行 thread.interrupt()。这就是为什么人们认为任何中断只会在 Future 被取消或线程池终止时才会出现的原因吗?
我试图理解为什么未来接口中没有中断方法。任何帮助将不胜感激