最近學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;
}
運行結果:
在試驗種發現其運行的特點是 必須上面多個線程都結束後 纔會進行下面的程序,
如有不妥之處 歡迎指正,也歡迎指出更多方法