3.2死锁功能
本节描述的功能操作用于同步锁。
为以下功能,锁变量必须具有类型 omp_lock_t。 必须通过这些功能仅捕获此变量。 所有死锁函数具有指向 omp_lock_t 类型的参数。
omp_init_lock 函数来初始化一个简单的锁。
omp_destroy_lock 功能移除一个简单的锁。
omp_set_lock 函数等待,直到简单的锁可用。
omp_unset_lock 函数释放一个简单的锁。
omp_test_lock 函数可测试一个简单的锁。
为以下功能,锁变量必须具有类型 omp_nest_lock_t。 必须通过这些功能仅捕获此变量。 所有可套上的死锁函数具有指向 omp_nest_lock_t 类型的参数。
omp_init_nest_lock 函数初始化可套上的锁。
omp_destroy_nest_lock 功能移除可套上的锁。
omp_set_nest_lock 函数等待,直到可套上的锁可用。
omp_unset_nest_lock 函数释放可套上的锁。
omp_test_nest_lock 函数可测试可套上的锁。
OpenMP 死锁函数访问锁定变量,因此总是读取和更新锁定变量的当前值。 因此,包括显式 刷新 指令确保 OpenMP 程序并不是必需的锁变量值在不同的线程之间保持一致。 (可能需要 刷新 指令使值其他变量一致。)