4

我遇到过 openMP,它可以用于并行化 c、C++ 中的 for 循环。当然,OpenMP 可以做的远不止这些。但我很好奇我们是否可以并行化 Java 中的 for 循环以优化程序的性能。假设我在 for 循环中有 n 次迭代,有没有办法并行运行这些迭代?

4

1 回答 1

9

如果每次迭代花费大量时间并且独立于循环中的先前计算,则使用 E​​xecutorService 并将计算作为任务提交。

ExecutorService executorService = Executors.newFixedThreadPool(4); // number of threads
for (int i = 0; i < n; i++) {
   // declare variables as final which will be used in method run below
   final int count = i;
   executorService.submit(new Runnable() {
       @Override
       public void run() {
           //do your long stuff and can use count variable
       }
   });
}
于 2013-07-04T06:46:09.887 回答