我正在尝试使用openMP,并且我有一个永远不能同时运行两次的功能。在另一个世界,这不会是一个问题:
int foo(void){
mutex->lock();
....
mutex->release();
}
如何在 OpenMP 中实现相同的目标?
利用:
#pragma omp critical (CriticalSection1)
{
// your stuff here
}
编辑
我希望这更清楚:
int foo(void){
//mutex->lock();
#pragma omp critical (CriticalSection_foo)
{
....
}
//mutex->release();
}
编辑 2
根据评论者的建议,我扩展了示例以包括命名的关键部分。圆括号是必需的,请参阅带有示例的英特尔 OMP 文档。