线程属性:
1.线程的分离状态
线程的分离状态决定一个线程以什么样的方式来终止自己。非分离的线程终止时,其线程ID和退出状态将保留,直到另外一个线程调用pthread_join.分离的线程在当它终止时,所有的资源将释放,我们不能等待它终止。
2.线程栈末尾的警戒缓冲区大小
3.线程栈的最低地址
4.线程栈的大小
5.scope属性(表明是与系统中所有线程竞争cpu还是和本进程中的其他线程竞争cpu)
创建一个以非分离态运行的线程:
void createThread(void)
{
pthread_attr_t threadAttr;
pthread_t mThread;
if (!pthread_attr_init(&threadAttr))
{
if (!pthread_attr_setdetachstate(&threadAttr, PTHREAD_CREATE_JOINABLE))
{
if (!pthread_create(&mThread, &threadAttr, threadFunc, this))
{
printf("create thread success!\n");
}
}
pthread_attr_destroy(&threadAttr);
}
}
2 . 线程优先级设置
pthread_attr_t threadAttr;
pthread_t mThread = pthread_self();
if (!pthread_attr_init(&threadAttr))
{
newprio = 15;
int schedPolicy;
sched_param schedParam;
if (!pthread_getschedparam(mThread, &schedPolicy, &schedParam))
{
param.sched_priority=newprio;
if (!pthread_setschedparam(mThread, schedPolicy, &schedParam))
{
printf("thread priority set success!\n");
}
}
}
pthread_attr_destroy(&threadAttr);