我正在迭代一个结构 vector 并单独处理每个结构。
它看起来像这样:
for_each(begin(data),end(data),DoTask);
//assume "data" is std::vector<DataT>
//assume DoTask is a function that takes a DataT by reference
代码非常慢,因为 DoTask 连接到特定网站并分析 HTML。
加快速度的最佳方法是什么?
我的目标是同时分析多个 DataT。
我对线程很陌生,但是 std::async和 std::future看起来很有前途。
最佳答案
你可以这样做
for(T& d : data) std::thread(DoTask, d).detach();
或者您可以使用更复杂的东西,例如 Intel 的线程构建 block 及其 parallel_for
(不是这个名字吗?)函数。
关于c++ - for 循环/for_each 的每次迭代都可以并行完成吗? (C++11),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155457/