c++ concurrency::parrallel_for 多线程及注意事项。

最近在研究算法部分,想要将单线程的算法升级成为多线程。

C++ ppl.h库就可以实现简单的并行。

话不多说,以后想起来了再补,直接上代码:

1.首先并行模式库ppl.h

#include
#include

2.并行for循环——concurrency::parallel_for()

int n=10;

for(int j=0;j

3.当然,可能还需要定义需要共享的数组

concurrency::concurrent_vector myObject;//定义自己的结构体数组

问题记录:

        在并行算法实现的过程中,出现了《量子力学波动》,即多次运行并行算法结果不一样且不正确,究其原因是在并行循环中使用了两个并行数组,并理所当然的认为他们是一一对应的,事实上,不同线程中对数组添加的元素的时候,中途就是不知道谁先插入进去,也就造成了数据紊乱,解决办法就是建立结构体,一行语句添加。

你可能感兴趣的:(c++,算法)