java - Fork/Join 杀死 sibling /分支

标签 java

我正在使用 Fork/Join 递归搜索问题的解决方案。

      /——----1------\
  /--1.1--\     /--1.2--\
1.1.1   1.1.2 1.2.1   1.2.2

现在假设我在 1.2.1 中找到了解决方案。有没有办法取消 forkjoin 池中的所有其他进程?

如果我知道 1.1 和 1.2 每个都包含一个潜在的解决方案怎么办 - 所以我只想取消我的 sibling (以及他们可能产生的任何子分支)?

我可以使用一些共享对象标志,但我希望 Fork/Join 有一个更干净的方法来杀死分支或 sibling 。

最佳答案

没有。一旦开始,它就会完成或出现错误/异常。

您必须自己编写取消程序。也就是说,将一个 volatile boolean 值传递给每个任务,准备就绪后将 boolean 值设置为真(取消)。每个任务都可以测试 boolean 值是否为真并立即停止。

关于java - Fork/Join 杀死 sibling /分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674546/

相关文章:

java - 运行在不同机器上的Kafka消费者组可以接收到唯一的消息吗?

java - Tomcat 不读取链接作为参数

java - Spring-Boot:在 Java 代码配置(不是 XML)中指定 REALM(安全约束和角色)和 CLIENT-CERT 身份验证?

Java 正则表达式不匹配?

java - Android:应用程序关闭时从后台推送动态通知

java - Android 蓝牙读取输入流

java - 为什么我的第一个 Activity 没有显示?

Java多线程

java - 这行代码在java中是如何执行的?

Java for Android - 如何为 boolean 变量创建事件监听器