#include "iostream"
#include <omp.h>
#include <math.h>
using namespace std;
int main(int argc,char *argv[])
{
#pragma omp parallel
{
#pragma omp for
for( int i=0;i<10;i++)
{
printf("i=%d,ThreadID=%d,CPU=%d\n",i,omp_get_thread_num(),omp_get_num_procs());
}
}
printf("finished.\n");
return 0;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
结果是
i=0,ThreadID=0,CPU=2
i=0,ThreadID=0,CPU=2
i=5,ThreadID=1,CPU=2
i=1,ThreadID=0,CPU=2
i=6,ThreadID=1,CPU=2
i=2,ThreadID=0,CPU=2
i=7,ThreadID=1,CPU=2
i=3,ThreadID=0,CPU=2
i=8,ThreadID=1,CPU=2
i=4,ThreadID=0,CPU=2
i=9,ThreadID=1,CPU=2
finished.
Press any key to continue
为什么i=0执行了2次?求解释
------解决方案--------------------------------------------------------
#pragma omp parallel for private(i)试试