concurrency :: parallel_for似乎跳过了一些并行循环迭代

时间:2018-06-29 13:10:21

标签: visual-c++ ppl

这是测试代码:

#include <iostream>
#include <vector>
#include <ppl.h>

using namespace std;

int main() {
  const size_t n = 1000000;
  vector<bool> processed(n, false);
  concurrency::parallel_for<size_t>(0, processed.size(), [&](size_t i) {
    processed[i] = true;
  });
  for (size_t i = 0; i < processed.size(); ++i) {
    if (!processed[i]) {
      cerr << "i = " << i << endl;
    }
  }
  return 0;
}

在VS2015版本14.0.25431.01更新3中进行编译,有时会得到一些索引的输出。对于Win32和x64,在调试模式下(仅在Release中)看不到它。每次我运行它时索引都是不同的,因此看起来parallel_for不会处理某些并行循环迭代。有人可以在这里看到我在做什么吗?

0 个答案:

没有答案