线程属性标识符:pthread_attr_t 包含在 pthread.h 头文件中。
//线程属性结构如下:
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)
作用域属性描述特定线程将与哪些线程竞争资源。线程可以在两种竞争域内竞争资源:
进程域(process scope):与同一进程内的其他线程。
系统域(system scope):与系统中的所有线程。一个具有系统域的线程将与整个系统中所有具有系统域的线程按照优先级竞争处理器资源,进行调度。
Solaris系统,实际上,从 Solaris 9 发行版开始,系统就不再区分这两个范围。
二、线程的绑定状态(binding state)