一个线程是否可以阻止它尝试锁定的锁定不可用?

时间:2014-04-03 03:14:26

标签: parallel-processing

在OpenMP中,有例程OMP_TEST_LOCK,当线程调用以尝试设置锁定时,如果锁定不可用,则线程不会阻塞。

我想知道调用一个线程会做什么,如果没有阻塞,当它试图锁定的锁不可用时?谢谢!

1 个答案:

答案 0 :(得分:1)

OMP_TEST_LOCK将指示是否可以通过返回码设置锁定。

示例:

if( omp_test_lock( &a_lock ) )
{
    work_a();
    omp_unset_lock( &a_lock ) )
}
else
{
    work_b();
}
work_c();

如果可以设置锁定,则会调用work_a然后work_c。如果无法设置锁定,则会调用work_bwork_c。这只是正常的控制流程。