Как заставить потоки писать свои номера в обратном порядке, используя OpenMP? - PullRequest
0 голосов
/ 24 сентября 2018

Итак, у меня есть задача.Мне нужно сделать 8 потоков и заставить их писать свои номера в обратном порядке.Я знаю, как заставить их писать в естественном порядке, но по-настоящему запутался в обратном.Надеюсь, что кто-нибудь может мне помочь!

1 Ответ

0 голосов
/ 24 сентября 2018

Я не совсем понимаю цель того, что вы спрашиваете, но это работает

 #include "omp.h"
 #include <iostream>
 using namespace std;
 int main()
 {

#pragma omp parallel
{
      int nthreads = omp_get_num_threads();
      for(int i=nthreads-1; i>=0; i--)
      {
            #pragma omp barrier
            {
                  if(i==omp_get_thread_num())
                  {
                        #pragma omp critical
                        cout << "I am thread "<< i <<endl;
                  }
            }
      }
}
}

8 потоков, которые он выводит

I am thread 7
I am thread 6
I am thread 5
I am thread 4
I am thread 3
I am thread 2
I am thread 1
I am thread 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...