https://blog.csdn.net/weixin_43997331/article/details/104708635 visual studio配置OPENMP
https://zhuanlan.zhihu.com/p/61857547 经典的入门案例
https://blog.csdn.net/q19149/article/details/102735088
https://blog.csdn.net/q19149/category_9426292.html 其他的一些语法,例如pragma omp critial
下面是学习 pragma omp barrier 的语法
#include <iostream>
#include "omp.h"
using namespace std;
int main(int argc, char** argv) {
//设置线程数,一般设置的线程数不超过CPU核心数,这里开4个线程执行并行代码段
int sum = 0;
#pragma omp parallel num_threads(3)
{
#pragma omp atomic
sum += 10;
//barrier 是屏障、障碍的意思
//所有率先执行完毕的线程都会被堵在这里,最后等待所有线程都执行完毕,再统一向下执行
//所以会输出 30 30 30 (3个30)
//没有下面这句话 就会输出 10 30 20 (顺序是任意的)
#pragma omp barrier // TODO : disable this to see
cout << sum << endl;
}
}