天天看點

OpenMP 線程互斥鎖

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總是順序一起輸出的):

OpenMP 線程互斥鎖

繼續閱讀