【发布时间】:2017-04-07 10:00:02
【问题描述】:
我是 Java 并发方面的新手,所以我问什么是执行此类操作的最佳方式:
我有一个静态方法可以匹配图像中的子图像。看起来是这样的:
public static Point match(final BufferedImage subimage, final BufferedImage image)
如果没有匹配,该方法返回 null,否则返回匹配点。
现在我有一个(大)图像的 40 个不同的子图像,我想并行匹配。每秒钟我都会得到一个新的(大)图像,我需要在其中一遍又一遍地搜索这 40 个较小的图像。我需要在我的主任务中匹配任务结束时每次调用的返回值来匹配方法,所以我可以分析它。 此外,我需要为这项任务使用尽可能多的 CPU 内核。
我怎样才能做到这一点? 我已经阅读了很多关于 ExecutorService、Task、Runnable 等的内容。大多数示例仅显示如何在控制台上并行打印某些内容。我真的很困惑我应该在我的场景中走哪条路:如何传递值以及如何获得结果?类的布局应该如何?另外,如果我每秒创建 40 个任务,我也不知道该怎么办(设置任务需要一些时间,对吧?)
代码可以很好地解释它:)
【问题讨论】:
标签: java multithreading concurrency java-8