pthread_mutexattr --POSIX THREAD

  名称
   pthread_mutexattr_init, pthread_mutexattr_destroy, pthread_mutexattr_settype,
   pthread_mutexattr_gettype – 创建互斥体属性
  
  大纲
   #include
   int pthread_mutexattr_init(pthread_mutexattr_t *attr);
   int pthread_mutexattr_destroy(pthread_mutexattr_t *attr);
   int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int kind);
   int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *kind);
  
  描述
  互斥体的属性在可以通过当作pthread_mutex_init的第二个参数指给创建的互斥体。如果这个传递空指针,互斥体用默认值创建互斥体。
  
   pthread_mutexattr_init初始化attr并且给它赋予默认值。
  
   pthread_mutexattr_destroy销毁一个属性对象,在重新进行初始化之前该结构不能重新使用。在LinuxThreads中它不作任何事。
  
   LinuxThreads只支持一种互斥体属性:互斥体的类型,fast类型的互斥体值为PTHREAD_MUTEX_FAST_NP,recursive类型的互斥体值为PTHREAD_MUTEX_RECURSIVE_NP,error checking类型的互斥体值为PTHREAD_MUTEX_ERRORCHECK_NP。就像NP后缀暗示的那样,这是POSIX标准的不可移植的扩展,不应该出现在将要进行移植的程序中。
  
  互斥体的类型决定当线程要锁定一个已经被它自己锁定的互斥体时会发生什么。fast类型只是简单的永远将这个线程挂起。error checking类型的互斥体会立即返回一个错误码EDEADLK。否则的话,返回立即成功返回。在互斥体中会记录这个线程对互斥体进行了多少次锁定,想要真正释放这个互斥体也就必须调用相同次数的pthread_mutex_unlock。
  
  它的默认值是fast类型,值为PTHREAD_MUTEX_FAST_NP。
  
   pthread_mutexattr_settype使用kind的值对attr赋值。
  
  返回值
   pthread_mutexattr_init, pthread_mutexattr_destroy and pthread_mutexattr_gettype总是返回0。
   pthread_mutexattr_settype在成功时返回0,在出错时返回非零的出错码。
  
  错误码
  在出错的时候,pthread_mutexattr_settype返回下面的返回值:
   EINVAL:kind的值不是PTHREAD_MUTEX_FAST_NP,PTHREAD_MUTEX_RECURSIVE_NP或PTHREAD_MUTEX_ERRORCHECK_NP之一。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值