pthread_mutexattr_setkind_np 子例程

用途

设置互斥属性对象的类型属性的值。

线程库libpthreads.a

语法

#include <pthread.h>
int pthread_mutexattr_setkind_np ( attr,  kind)
pthread_mutexattr_t *attr;
int kind;

描述

pthread_mutexattr_setkind_np子程序用于设置静态属性对象attr 的 kind 属性值。 此属性指定了使用此属性对象创建的互斥器的类型。

注意:
  1. pthread.h头文件必须是使用线程库的每个源文件的第一个包含文件。 否则,应使用-D_THREAD_SAFE编译标志,或使用 cc_r 编译器。 在这种情况下,会自动设置标志。
  2. pthread_mutexattr_setkind_np子例程不可移植。

提供此子例程只是为了与 DCE 线程兼容。 编写新应用程序时不应使用此参数。

参数

描述
attr 指定互斥属性对象。
KIND 指定要设置的种类。 它必须具有下列其中一个值:
MUTEX_FAST_NP
表示快速互斥。 快速互斥只能锁定一次。 如果同一线程解锁两倍于同一快速互斥对象,那么该线程将死锁。 任何线程都可以解锁快速互斥对象。 快速互斥对象与优先级继承协议不兼容。
mutex_recursive_np
表示递归互斥。 递归互斥对象可以被同一线程锁定多次,而不会导致该线程死锁。 然后,线程必须像锁定互斥对象一样多次解锁该互斥对象。 只有锁定递归互斥对象的线程才能将其解锁。 递归互斥不得与条件变量一起使用。
mutex_nonrecursive_np
表示默认的非递归POSIX兼容互斥器。

返回值

成功完成后,将返回 0。 否则,将返回错误代码。

错误代码

如果以下情况为真,则pthread_mutexattr_setkind_np子例程不会成功:

描述
EINVAL attr 参数无效。
ENOTSUP 不支持 kind 参数的值。