小编MrS*_*key的帖子

C OpenMP代码意外地在cygwin上运行,但正如Linux上预期的那样

int a = 0;
#pragma omp parallel private(a)
{
    a++;
    printf("%d", a);
}
Run Code Online (Sandbox Code Playgroud)

有4个内核可以期望这段代码打印1111,它在我的Linux机器上打印.

但是,在我的Windows机器上运行cygwin中的相同代码(相同的标志等)会导致11117(不确定1的数量).

7总是在那里,一个尝试相同的朋友也有7,任何想法如何发生这种情况?

我在两台机器上用"gcc source.c -fopenmp -O2"编译了代码.

c cygwin openmp

2
推荐指数
1
解决办法
53
查看次数

标签 统计

c ×1

cygwin ×1

openmp ×1