Linux 下C语言多线程编程--线程属性

线程属性

属性结构

union pthread_attr_t{
   
  char __size[__SIZEOF_PTHREAD_ATTR_T];
  long int __align;
};

属性值不能直接设置,必须使用相关函数进行操作,线程属性主要包括:是否绑定,是否分离,堆栈地址,堆栈大小,优先级

初始化函数

函数原型

/* Initialize thread attribute *ATTR with default attributes
   (detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,
    no user-provided stack).  */
extern int pthread_attr_init (pthread_attr_t *__attr) __THROW __nonnull ((1));

:该函数必须在pthread_create()之前调用
默认:非绑定,非分离,默认1M的堆栈,与父进程同样级别的优先级

关于绑定

轻进程(内核进程)位于系统层与用户层之间,系统对线程的分配、控制都是通过轻进程来实现的,一个轻进程可以控制一个或者多个线程
非绑定:默认情况下启动的轻进程以及它所控制的线程都是由系统决定的,所以这就是属于非绑定的
绑定:把某个线程指定到某个轻进程上面(被绑定的线程具有较高的响应速度)

分离属性

非分离:原有的线程等待创建的线程结束,只有当pthread_join()收到返回值时,创建的线程才算终止,才能释放空间
分离:线程函数执行完以后马上释放空间

绑定函数

/* Return in *SCOPE the scheduling contention scope of *ATTR.  */
extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
				  int *__restrict __scope)
     
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值