pthread_mutex_init参数说明
时间: 2023-07-05 22:26:18 浏览: 231
pthread_cond_init函数-嵌入式linux多线程编程
pthread_mutex_init函数用于初始化互斥锁,其参数说明如下:
1. mutex:指向要初始化的互斥锁变量的指针。
2. attr:指向互斥锁属性结构体的指针,可以为NULL,表示使用默认属性。
3. 返回值:成功返回0,失败返回错误码。
互斥锁属性结构体pthread_mutexattr_t的成员变量如下:
1. pshared:用于指定互斥锁的共享属性,取值可以为PTHREAD_PROCESS_PRIVATE或PTHREAD_PROCESS_SHARED,表示互斥锁只能被本进程内的线程使用或者可以被多个进程的线程共享,默认为PTHREAD_PROCESS_PRIVATE。
2. type:用于指定互斥锁的类型,取值可以为PTHREAD_MUTEX_NORMAL、PTHREAD_MUTEX_ERRORCHECK、PTHREAD_MUTEX_RECURSIVE或者PTHREAD_MUTEX_DEFAULT,默认为PTHREAD_MUTEX_DEFAULT。其中,PTHREAD_MUTEX_NORMAL表示普通的互斥锁,不支持递归调用;PTHREAD_MUTEX_ERRORCHECK表示检错型互斥锁,检查互斥锁的状态,防止重复加锁;PTHREAD_MUTEX_RECURSIVE表示递归互斥锁,支持递归调用;PTHREAD_MUTEX_DEFAULT表示与PTHREAD_MUTEX_NORMAL相同。
3. protocol:用于指定互斥锁的协议,取值可以为PTHREAD_PRIO_NONE、PTHREAD_PRIO_INHERIT或者PTHREAD_PRIO_PROTECT,默认为PTHREAD_PRIO_NONE。其中,PTHREAD_PRIO_NONE表示不使用优先级继承或者保护,PTHREAD_PRIO_INHERIT表示使用优先级继承,PTHREAD_PRIO_PROTECT表示使用优先级保护。
4. process-shared:用于指定在进程间共享互斥锁时,互斥锁的属性,取值可以为PTHREAD_PROCESS_PRIVATE或PTHREAD_PROCESS_SHARED,默认为PTHREAD_PROCESS_PRIVATE。其中,PTHREAD_PROCESS_PRIVATE表示互斥锁不能在进程间共享,PTHREAD_PROCESS_SHARED表示互斥锁可以在进程间共享。
阅读全文