如果我创建一个循环
for(int i=0;i<n;i++){//do something}
并通过Visual Studio运行,我的程序会为每次迭代创建一个线程,整个循环,还是一个变量号?
答案 0 :(得分:3)
并通过Visual Studio运行,我的程序会为每次迭代创建一个线程,整个循环,还是一个变量号?
以上都不是。默认情况下,您的程序只有一个执行线程,它将按顺序执行循环的每次迭代,而不会创建新的。
只有使用像OpenMP(或类似)这样的功能才能在每次迭代中生成不同的线程。
#include <omp.h>
#pragma omp parallel for
for(int n=0; n<10; ++n) { printf(" %d", n); }
printf(".\n");