OpenMP是跨平台的多核多線程程式設計的一套指導性的編譯處理方案(Compiler Directive),指導編譯器将代碼編譯為多線程程式。
多線程程式設計中肯定會涉及到線程之間的資源共享問題,就可以使用互斥鎖,就是隻有獲得互斥鎖的線程可以執行,其他線程阻塞。
1.OpenMP中的互斥鎖函數
void omp_init_lock(omp_lock *) 初始化互斥器
void omp_destroy_lock(omp_lock *) 銷毀互斥器
void omp_set_lock(omp_lock *) 獲得互斥器
void omp_unset_lock(omp_lock *) 釋放互斥器
bool omp_test_lock(omp_lock *) 試圖獲得互斥器,如果獲得成功傳回true,否則傳回false
2.代碼執行個體
編譯執行(可以看到BB1,BB2總是順序一起輸出的):
