Parallel processing 如果线程尝试锁定的锁不可用,线程是否可以不阻塞?

Parallel processing 如果线程尝试锁定的锁不可用,线程是否可以不阻塞?,parallel-processing,Parallel Processing,在OpenMP中,有一个例程OMP_TEST_LOCK,当线程调用该例程试图设置锁时,该例程不会在锁不可用时阻塞 我想知道当线程试图锁定的锁不可用时,如果不阻塞,调用线程会做什么?谢谢 将指示是否可以通过返回代码设置锁 例如: if( omp_test_lock( &a_lock ) ) { work_a(); omp_unset_lock( &a_lock ) ) } else { work_b(); } work_c(); 如果可以设置锁,将调用wo

在OpenMP中,有一个例程
OMP_TEST_LOCK
,当线程调用该例程试图设置锁时,该例程不会在锁不可用时阻塞

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

将指示是否可以通过返回代码设置锁

例如:

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

如果可以设置锁,将调用
work\u a
然后调用
work\u c
。如果无法设置锁,将调用
work\u b
work\u c
。这只是正常的控制流程。

这是一个关于特定软件库的实现细节的问题,因此在此不再讨论。我要把它搬到。谢谢!但是,既然调用线程不阻塞,也不能锁定lock变量,那么调用线程将做什么?运行什么?例如?@Tim,给你。:)