Mentions légales du service

Skip to content
Snippets Groups Projects
1-intro-mutex.cpp 712 B
#include <iostream>
#include <omp.h>


int main(int argc, char** argv)
{
  omp_lock_t writelock;

  omp_init_lock(&writelock);

#pragma omp parallel num_threads(3)
  {
    omp_set_lock(&writelock);
    std::cout << "Parallel region 1: tid:" << omp_get_thread_num() << std::endl;
    omp_unset_lock(&writelock);
  }
  
#pragma omp parallel num_threads(4)
  {
    omp_set_lock(&writelock);
    std::cout << "Parallel region 2: tid:" << omp_get_thread_num() << std::endl;
    omp_unset_lock(&writelock);
  }
    
#pragma omp parallel num_threads(2)
  {
    omp_set_lock(&writelock);
    std::cout << "Parallel region 3: tid:" << omp_get_thread_num() << std::endl;
    omp_unset_lock(&writelock);
  }

  return 0;
}