最近在研究算法部分,想要将单线程的算法升级成为多线程。
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;//定义自己的结构体数组
问题记录:
在并行算法实现的过程中,出现了《量子力学波动》,即多次运行并行算法结果不一样且不正确,究其原因是在并行循环中使用了两个并行数组,并理所当然的认为他们是一一对应的,事实上,不同线程中对数组添加的元素的时候,中途就是不知道谁先插入进去,也就造成了数据紊乱,解决办法就是建立结构体,一行语句添加。