第12章线程控制总结

1 线程属性

线程属性:pthread_attr_t

int pthread_attr_init(pthread_attr_t *attr)
int pthread_attr_destroy(pthread_attr_t *attr)

 pthread_attr_init 为属性对象分配动态内存空间,pthread_attr_destroy将释放这些内存空间,并使用无效的值初始化属性对象,该属性对象如果再次被pthread_create调用将出错

线程属性:

typedef struct

{

  int  detachstate 线程分离状态

  int schedpolicy 线程调度策略

  struct schedparam schedparam 线程调度参数

  int inheritsched 线程继承性

  int scope 线程作用域

  size_t guardsize 线程栈末尾警戒缓冲区大小

  int stackaddr_set

  void * stackaddr 线程栈的位置

  size_t  stacksize 线程栈的大小

} pthread_attr_t;

通过pthread_attr_getxxxx(pthread_attr_t *attr,int *val)形式的函数获取具体某个属性的值

通过pthread_attr_setxxxx(pthread_attr_t *attr,int val)形式的函数设置具体某个属性的值

 

2 同步属性

互斥量属性:pthread_mutexattr_t

int pthread_mutexattr_init(pthread_mutexattr_t *attr)
int prthread_mutexattr_destroy(pthread_mutexattr_t *attr)

 进程共享属性:

int pthread_mutexattr_getpshared(pthread_mutexattr_t *attr,int *pshared)
int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr,int pshared)

 类型属性:

 互斥量类型属决定了互斥量的行为:

 PTHREAD_MUTEX_NORMAL:标准类型,不做特殊的错误检查或死锁检测

 PTHREAD_MUTEX_ERRORCHECK:提供错误检查(加锁再加锁、不占用解锁)

 PTHREAD_MUTEX_RECURSIVE:允许多次加锁,并提供错误检查(不占用解锁)

 PTHREAD_MUTEX_DEFAULTlinux将该类型映射到PTHREAD_MUTEX_NORML

 

int pthread_mutexattr_gettype(pthread_mutexattr_t *attr,int *type)
int pthread_mutexattr_settype(pthread_mutexattr_t *attr,int type)

 

 

读写锁属性:pthread_rwlockattr_t

int pthread_rwlockattr_init(pthread_rwlockattr_t *attr)
int pthread_rwlockattr_destroy(pthread_rwlockattr_t *attr)

int pthread_rwlockattr_getpshared(pthread_rwlockattr_t *attr,int *pshared)
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *attr,int pshared)


条件变量属性:pthread_condattr_t

int pthread_condattr_init(pthread_condattr_t *attr)
int pthread_condattr_destroy(pthread_condattr_t *attr)

int pthread_condattr_getpshared(pthread_condattr_t *attr,int *pshared)
int pthread_condattr_setpshared(pthread_condattr_t *attr,int pshared)


 

转载于:https://www.cnblogs.com/buptlyn/p/4174675.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值