OpenMP並行編程應用 簡單實例 C++ 多線程

最近學OpenCV 需要用到並行處理 ,通過查資料發現太亂,有的說明是介紹並行的 卻在好長代碼裏作爲演示,讓人難以捉摸真正的用法,在此我特意做個簡單的實例程序,希望能幫助大家學習 使用節省學習時間。

其優勢就是加快處理 同時幹多樣事情 ,不過也有其不足的地方 那就是多個線程都幹完了才進行下面的程序

首先 需要對編譯器進行設置:

VS2013 內置了對OpenMP的支持。在項目上右鍵->屬性->配置屬性->C/C++->語言->OpenMP支持裏選擇是:

然後再加如對應的頭文件:

//#include "omp.h"  



// 多線程演示.cpp : 定義控制檯應用程序的入口點。
//
#include "stdafx.h"
#include <iostream>
#include <windows.h>
//#include "omp.h"  
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
#pragma omp parallel sections  
	{
#pragma omp section
		{
			Sleep(100);
			cout << "多線程1" << endl;
		}
#pragma omp section
		{
		Sleep(50);
		cout << "多線程2" << endl;
	}
#pragma omp section
		{
			Sleep(200);
			cout << "多線程3" << endl;
		}
	}
	cout << "出多線程" << endl;

	return 0;
}

運行結果:


在試驗種發現其運行的特點是 必須上面多個線程都結束後 纔會進行下面的程序,

如有不妥之處 歡迎指正,也歡迎指出更多方法


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章