次の方法で共有


A.31 スレッド セーフなロック関数

次の C++ 例では、omp_init_lock (42 ページの「3.2.1 omp_init_lock 関数と omp_init_nest_lock 関数」) を使用して並列領域内でロックの配列を初期化する方法を示します。

コード

// A_13_omp_init_lock.cpp
// compile with: /openmp
#include <omp.h>

omp_lock_t *new_locks() {
   int i;
   omp_lock_t *lock = new omp_lock_t[1000];
   #pragma omp parallel for private(i)
   for (i = 0 ; i < 1000 ; i++)
      omp_init_lock(&lock[i]);

   return lock;
}

int main () {}