使用给定结果中止RecursiveTask?

时间:2015-03-21 09:56:43

标签: java multithreading concurrency concurrenthashmap fork-join

我遇到以下问题:

我在RecursiveAction的帮助下对ConcurrentHashMap进行了交互,以便分割和征服地图。

问题是我需要返回为特定条件找到的第一个结果,或者如果找不到任何内容,我需要在所有" split-tasks"完成了。

现在(由于我使用RecursiveAction而不是RecursiveTask这一事实)我只能调用一个方法然后做"返回;"当一项任务找到匹配但闻起来很糟糕时。

我尝试实现RecursiveTask的所有解决方案都需要遍历整个映射(执行所有拆分),直到我可以返回一个值。

是否有可能返回给定的结果并取消任务以使用RecursiveTask预先计算进一步加班?

1 个答案:

答案 0 :(得分:0)

也许这个旧的SO answer会有所帮助。这是一种“短路”形式,你需要自己完成。或者您可以使用另一个包。