所以我有一个任务。我需要让8个线程使它们以相反的顺序写数字。我知道如何使它们以自然顺序书写,但对于相反的情况确实感到困惑。希望任何人都能帮助我!
答案 0 :(得分:1)
我不太了解您要问的目的,但这行得通
#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