网站建设期中考试题,网站建设网站管理,国内全屏网站有哪些,永久网站本节作为指引性介绍#xff0c;linux下线程的属性是可以根据实际项目需要#xff0c;进行设置#xff0c;之前我们讨论的线程都是采用线程的默认属性#xff0c;默认属性已经可以解决绝大部分开发遇到的问题。如我们对程序的性能提出更高的要求那么需要设置线程属性#x…本节作为指引性介绍linux下线程的属性是可以根据实际项目需要进行设置之前我们讨论的线程都是采用线程的默认属性默认属性已经可以解决绝大部分开发遇到的问题。如我们对程序的性能提出更高的要求那么需要设置线程属性比如可以设置线程栈的大小来降低内存的使用增大最大线程个数。
typedef struct
{int etachstate; //线程的分离状态int schedpolicy //线程调度策略struct sched_param sched_param; //线程的调度参数int inheritsched; //线程的继承性int scope; //线程的作用域int guardsize; //线程栈末尾的警戒缓冲区大小int stackaddr; //线程栈的位置int stacksize; //线程栈的大小
} pthread_attr_t;
#includestdio.h
#includestring.h
#includeunistd.h
#includestdlib.h
#includepthread.hvoid *thrd_func(void *arg)
{pthread_exit((void*)77);}int main()
{pthread_t tid;int ret;pthread_attr_t attr;ret pthread_attr_init(attr);if(ret ! 0) {fprintf(stderr, pthread_init error: %s\n, strerror(ret));exit(1);}pthread_attr_setdetachstate(attr, PTHREAD_CREATE_DETACHED);ret pthread_create(tid, attr, thrd_func, NULL);if(ret ! 0) {fprintf(stderr, pthread_create error: %s\n, strerror(ret));exit(1);}ret pthread_join(tid, NULL);if(ret ! 0) {fprintf(stderr, pthread_join error: %s\n, strerror(ret));exit(1);}printf(-------------------------------join ret %d\n, ret);pthread_exit((void*)1);
}