如何不等待OpenMP中的其他线程?

时间:2010-08-03 05:16:31

标签: c++ multithreading openmp

我正在考虑在C ++中使用OpenMP进行多线程处理。但我想知道是否有一种方法告诉线程不要等待其他并发线程并继续我的程序? (也许我可以取消/杀死其他线程?)

我知道“nowait”子句的存在,但我希望动态完成“等待”或“不等待”的决定(程序将根据我正在进行的过程的结果来决定)。

我希望我能就此得到一些建议。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我会按照

的方式做点什么
if(conditon)
{
     taskA_with_Barriers();
}  
else
{
     taskA_without_Barrier();
}

condtion需要在所有线程中保持相同的常量。

如果您需要取消线程,则可能使用了错误的技术。可能还想看一下 pthreads MPI