6.2 创建和销毁互斥量

方法

pthread_mutex_init(mutex, attr)

pthread_mutex_destroy(mutex)

pthread_mutexattr_init(attr)

pthread_mutexattr_destroy(attr)

用法

        互斥量的类型为pthread_mutex_t,必须在使用前初始化。有如下两种初始化互斥量的方法:

  • 声明时初始化,如下
pthread_mutex_t mymutex = PTHREAD_MUTEX_INITIALIZER;
  • 使用pthread_mutex_init()初始化,如下
pthread_mutex_t mymutex;
pthread_mutex_init(&mymutex, NULL);

        初始化后互斥量为未上锁的状态。

        参数attr用于设置互斥量的属性信息,类型为pthread_mutexattr_t,可设为NULL。Pthreads主要定义了互斥量的三个属性(可选):

  • 协议:制定避免互斥量优先级翻转的协议
  • 优先级上限:指定互斥量优先级的上限
  • 线程共享:制定线程共享互斥量的相关信息

        注意不是所有的平台具体实现中都一定提供如上的互斥量的三种属性信息。

        pthread_mutexattr_init()和pthread_mutexattr_destroy()用于创建和销毁互斥量属性对象;在一个互斥量不再被使用时应该调用pthread_mutex_destroy()将其销毁。

你可能感兴趣的:(c语言,Pthreads)