小编AKS*_*KSG的帖子

并发 - 在不取消它的情况下中断未来

有没有办法在不取消它的情况下打断未来?

java doc API:

boolean cancel(boolean mayInterruptIfRunning)

尝试取消执行此任务.如果任务已完成,已取消或由于某些其他原因无法取消,则此尝试将失败.如果成功,并且在调用cancel时此任务尚未启动,则此任务永远不会运行.如果任务已经启动,则mayInterruptIfRunning参数确定执行此任务的线程是否应该在尝试停止任务时被中断.

要捕获中断,我们必须正确捕获Interrupted Exception或检查Runnable/Callable方法中的isInterrupted()方法.

但是没有办法使用Future接口中断正在运行的Future

由于所有线程都在Executor Service池中,因此没有人可以执行thread.interrupt().这就是为什么假设只有当Future被取消或线程池终止时才会出现任何中断?

我试图理解为什么Future接口中没有中断方法.任何帮助将不胜感激

java concurrency future interrupt

13
推荐指数
1
解决办法
5049
查看次数

标签 统计

concurrency ×1

future ×1

interrupt ×1

java ×1