我需要创建一个反感障碍。这就是我现在得到的。
void Barrier(int id, int num_process){
local_sense = 1-local_sense;
bar[id].lock.lock();
bar[id].count++;
bar[id].lock.unlock();
int arrived = bar[id].count;
if(arrived == num_process){
bar[id].lock.unlock();
bar[id].count = 0;
bar[id].flag = local_flag;
}
else{
bar[id].lock.unlock();
while(bar[id].flag != local_sense){};
}
}
我的任务是在#pragma omp并行内部同步线程,而无需使用#pragma omp屏障。
执行程序似乎并不同步所有线程