【发布时间】:2010-08-03 05:16:31
【问题描述】:
我正在考虑在 C++ 中使用 OpenMP 进行多线程处理。但我想知道是否有办法告诉一个线程不要等待其他并发线程并继续我的程序? (也许我可以取消/杀死其他线程?)
我知道“nowait”子句的存在,但我希望动态地完成“等待”或“不等待”的决定(程序将根据我正在执行的过程的结果来决定)。
希望能得到一些建议。
提前致谢。
【问题讨论】:
标签: c++ multithreading openmp
我正在考虑在 C++ 中使用 OpenMP 进行多线程处理。但我想知道是否有办法告诉一个线程不要等待其他并发线程并继续我的程序? (也许我可以取消/杀死其他线程?)
我知道“nowait”子句的存在,但我希望动态地完成“等待”或“不等待”的决定(程序将根据我正在执行的过程的结果来决定)。
希望能得到一些建议。
提前致谢。
【问题讨论】:
标签: c++ multithreading openmp
我会按照以下方式做一些事情
if(conditon)
{
taskA_with_Barriers();
}
else
{
taskA_without_Barrier();
}
condtion 需要在所有线程中保持相同的常量。
如果您需要取消线程,您可能使用了错误的技术。可能还想看看 pthreads 或 MPI。
【讨论】: