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

标签 c++ multithreading openmp

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

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

我希望能得到一些关于这方面的建议。

提前致谢。

最佳答案

我会按照以下方式做一些事情

if(conditon)
{
     taskA_with_Barriers();
}  
else
{
     taskA_without_Barrier();
}

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

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

关于c++ - 如何不等待 OpenMP 中的其他线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393757/

相关文章:

objective-c - 如何允许用户在不暂停应用程序更新循环的情况下调整 NSSlider?

c++ - 使用 OpenMP 的阻塞函数

c - OpenMP 实现使我的代码变慢

python - 多核机器上单精度和 double 组矩阵乘法的性能下降

c++ - C++中的for循环提前一步使用双重突破,未达到边界值

c++ - 使用完后删除所有堆分配的内存是否可行?

c++ - boot::exception 消息上的第一次和第二次访问冲突

java - 按需唤醒 hibernate 线程

c++ - 用 C++ 对数字进行排序

java - 如何正确使用Phaser?