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.**例項
1 #include 2 #include 3編譯執行(可以看到bb1,bb2總是順序一起輸出的):4static omp_lock_t lock;5
void putmes(inti)6
1516
intmain()
1724 omp_destroy_lock(&lock); //
銷毀互斥器
25return0;
26 }
OpenMP 執行緒互斥鎖
openmp是跨平台的多核多執行緒程式設計的一套指導性的編譯處理方案 compiler directive 指導編譯器將 編譯為多執行緒程式。多執行緒程式設計中肯定會涉及到執行緒之間的資源共享問題,就可以使用互斥鎖,就是只有獲得互斥鎖的執行緒可以執行,其他執行緒阻塞。1.openmp中的互斥鎖函式 ...
openmp之互斥鎖
openmp中有一些同步機制可以避免執行緒競爭問題的發生。可以使用同步機制,使得執行緒只有執行到某個語句,才能繼續執行後面的程式。在程式需要訪問可能產生競爭的記憶體資料的時候,都需要插入相應的臨界區 乙個例子是定積分確定求圓周率pi的值 函式介面只需要確定區間0 1之間的分段數,段數越多,pi的值自...
執行緒 互斥鎖
include include include include include 1.靜態初始化,當動態初始化時,遮蔽靜態初始化 pthread mutex t mutex pthread mutex initializer 2.動態初始化 pthread mutex t mutex int lock...