欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > Android C++系列:Linux线程(三)线程属性

Android C++系列:Linux线程(三)线程属性

2025/9/16 9:14:58 来源:https://blog.csdn.net/sjw890821sjw/article/details/140504784  浏览:    关键词:Android C++系列:Linux线程(三)线程属性

![[Android C++系列:Linux线程(三)线程属性.png]]

linux下线程的属性是可以根据实际项目需要,进行设置,之前我们讨论的线程都是采用线程的默认属性,默认属性已经可以解决绝大多数开发时遇到的问 题。如我们对程序的性能提出更高的要求那么需要设置线程属性,比如可以通过设置线程栈的大小来降低内存的使用,增加最大线程个数。

typedef struct {int etachstate; //线程的分离状态int schedpolicy; //线程调度策略structsched_param schedparam; //线程的调度参数int inheritsched; //线程的继承性int scope;//线程的作用域size_t guardsize;//线程栈末尾的警戒缓冲区大小int stackaddr_set; //线程的栈设置void* stackaddr; //线程栈的位置size_t stacksize; //线程栈的大小        
}pthread_attr_t; 

注:目前线程属性在内核中不是直接这么定义的,抽象太深不便分析,为方便理解,我们使用早期的线程属性定义,两者之间定义的主要元素差别不大。

属性值不能直接设置,须使用相关函数进行操作,初始化的函数为pthread_attr_init, 这个函数必须在pthread_create函数之前调用。之后须用pthread_attr_destroy函数来释 放资源。线程属性主要包括如下属性:作用域(scope)、栈尺寸(stack size)、栈地址 (stack address)、优先级(priority)、分离的状态(detached state)、调度策略和 参数(scheduling policy and parameters)。默认的属性为非绑定、非分离、缺省M的堆 栈、与父进程同样级别的优先级。

1. 线程属性初始化

先初始化线程属性,再pthread_create创建线程

#include <pthread.h>
int pthread_attr_init(pthread_attr_t *attr); //初始化线程属性
int pthread_attr_destroy(pthread_attr_t *attr); //销毁线程属性所占用的资源

<

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词