OpenMP Single

来源:互联网 发布:河北保定seo 编辑:程序博客网 时间:2024/06/05 02:54
#include <omp.h>void work1() { std::cout << "work1 正在运行.\n"; }void work2() { std::cout << "work2 正在运行.\n"; }// single编译指导语句指定内部代码只有线程组中的一个线程执行// 线程组中没有执行single语句的线程会一直等待代码块的结束,// 使用nowait子句除外#pragma omp parallel num_threads(2)            {#pragma omp single                // 如果没有{},work1就会运行两遍                {                    cout << "开始wrok1." << endl;                    work1();                }           #pragma omp single                cout << "结束work1." << endl;#pragma omp single nowait                // 这个与上面同样的道理                {                    cout << "结束work1并且开始work2." << endl;                    work2();                }                           }