我有这两段代码
#pragma omp parallel
#pragma omp sections
{
#pragma omp section
printf("H");
#pragma omp section
printf("e");
#pragma omp section
printf("l");
#pragma omp section
printf("l");
#pragma omp section
printf("o");
#pragma omp section
printf(" ");
#pragma omp section
printf("W");
#pragma omp section
printf("o");
#pragma omp section
printf("r");
#pragma omp section
printf("l");
#pragma omp section
printf("d");
#pragma omp section
printf("!");
}
和
char word[] = "Hello World!";
int n;
#pragma omp parallel for
for(n=0; n<12; n++)
{
printf("%c", word[n]);
}
而第一个总是打印Hello World!
第二个有时打印Hello World!
有时打印Helld!lo Wor
为什么第一个看起来是确定性的,而另一个却不是?