19-取消一个任务
5.6 取消一个任务
在一个 ForkJoinPool
类中执行 ForkJoinTask
实例对象时,我们可以在任务执行前取消任务。 ForkJoinTask
类用 cancel()
方法来实现这一目的。在取消任务之前,开发者应该考虑如下几点。
ForkJoinPool
类不提供取消池中全部等待执行和正执行任务的方法。- 当取消一个任务时,不能取消已经执行的任务。
本节将实现一个取消 ForkJoinTask
实例对象的案例。我们将在一个数组中搜索一个数字的位置,第一个找到该数字的任务将会取消其他任务。由于fork/join框架并没有相关功能,因此我们需要实现一个辅助类来完成取消操作。