C++ OpenMP、TBB库的简单使用

发布时间 2023-06-14 14:27:52作者: 一杯清酒邀明月

1.OpenMP的简单使用

OpenMP可以用来并行计算for循环,提高程序运行速度。

首先要打开OpenMP支持:“配置属性”——“C/C++”——“语言”——“1.OpenMP支持”后选择“是”。

1 omp_get_num_procs()                //获取系统中处理器的个数
2 omp_set_num_threads(num_count)    //设置线程数
3 omp_get_thread_num()            //获取当前线程的Id号

用法1:

 1 #pragma omp parallel
 2 {
 3     //每个线程都会执行大括号里的代码
 4     //并行的线程数由系统决定
 5 }
 6 //指定执行代码块的线程数
 7 omp_set_num_threads(4);//设置线程数,需要包含头文件<omp.h>
 8 #pragma omp parallel
 9 或者
10 #pragma omp parallel num_threads(4)//在parallel后直接增加线程子句
11 {
12     //执行该代码块的线程数为4
13 }

例子1:

 1 #include <iostream>
 2 #include "omp.h"
 3 using namespace std;
 4 int main()
 5 {
 6     omp_set_num_threads(4);//设置线程数
 7 #pragma omp parallel
 8     {
 9         //cout << "hello ,threads" << omp_get_thread_num() << endl;//cout打印格式混乱
10         printf("I am Thread %d\n", omp_get_thread_num());
11     }
12     system("pause");
13     return 0;
14 }