OpenMP多執行緒linux下的使用,簡單化

2022-04-10 10:18:15 字數 1108 閱讀 6389

這三篇文章已經講的很好。

關鍵語法:

#inlcude #pragma omp parallel for

#pragma omp for reduction(+: 變數)

#pragma omp critical//

鎖#pragma omp parallel for private(x,y)//

每個執行緒都獨立拷貝x, y變數,互不干擾,如果不設預設是共享變數

#pragma omp parallel for schedule(static/dynamic/guided, k)//

總工作量劃分成n/k塊,再多執行緒排程

#pragma omp parallel sections

#pragma omp parallel

.......

}#pragma omp barrier/nowait //

強制設定珊障/無需等待,如果後續函式對前面的多執行緒沒有依賴,即可使用nowait

#pragma omp parallel for firstprivate(變數)/lastprivate(變數) //

為每個多執行緒賦初值/出多執行緒回到主線程時賦值供主線程使用

還有就是openmp的api:

int omp_get_num_threads(); //

獲取當前使用的執行緒個數

int omp_get_num_threads(2/3/...)//

設定要使用的執行緒個數

nt omp_get_thread_num(void);//

返回當前執行緒號

int omp_get_num_procs(void);//

返回可用的處理核個數

ubuntu下,無需加標頭檔案,只需在編譯的時候增添-fopenmp即可。

例如:emacs操作命令如下

emacs omp.c

#include

intmain()

return0;

}ctrl+x s

alt+x compile

gcc -fopenmp -o omp omp.c

alt+shift+1 ./omp

自用 linux下多執行緒

3 簡單的多執行緒示例 乙個簡單的linux多執行緒示例如下 include include include include void thread function void arg char message hello world int main printf waiting for thre...

linux下多執行緒程式設計

先看執行的結果 1 主函式正在建立執行緒,2執行緒1被建立 3 thread1 i m thread 1th 4執行緒2被建立 5 thread2 i m thread 2nd 6 thread2 number 0 7執行緒3被建立 8主函式正在等待執行緒結束.9 thread1 number 0 ...

多執行緒開發簡易工具 OpenMP使用

最近有朋友問我tld感覺執行還是不夠快,問我如何提公升效率,我說用多執行緒,可是感覺很多程式設計人員認為這是個禁區,不敢涉足。但其實大家不用如此害怕,並行程式設計固然涉及很多系統執行機制的問題,搞不好可能會使程式崩潰,但openmp大大降低了並行開發的難度和複雜度。具體使用也非常簡單,不用安裝任何輔...