gpt4 book ai didi

c++ - for 循环/for_each 的每次迭代都可以并行完成吗? (C++11)

转载 作者:可可西里 更新时间:2023-11-01 15:45:52 33 4
gpt4 key购买 nike

我正在迭代一个结构 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::asyncstd::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/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com