LInux多线程编程----线程属性pthread_attr_t
2013-08-17 22:29
1316 查看
1、每个POSIX线程有一个相连的属性对象来表示属性。线程属性对象的类型是pthread_attr_t,pthread_attr_t 在文件/usr/include/bits/pthreadtypes.h中定义。
2、代码及运行结果:
运行结果:
2、代码及运行结果:
/* * pthreadAttr.c * * Created on: Aug 17, 2013 * Author: root */ #include <stdio.h> #include <errno.h> #include <pthread.h> #include <unistd.h> void * my_thread(void * arg){ int retval = 0; pthread_attr_t attr; struct sched_param param; size_t stacksize; int detachstate; int scope; int inherit; int policy; if(pthread_attr_init(&attr) == 0){ if(pthread_attr_getstacksize(&attr, &stacksize) == 0){ printf("StackSize: %d\n", stacksize); } if(pthread_attr_getdetachstate(&attr, &detachstate) == 0){ if(detachstate == PTHREAD_CREATE_JOINABLE){ printf("DetachState:PTHREAD_CREATE_JOINABLE.\n"); } if(detachstate == PTHREAD_CREATE_DETACHED){ printf("DetachState:PTHREAD_CREATE_DETACHED.\n"); } } if(pthread_attr_getscope(&attr, &scope) == 0){ if(scope == PTHREAD_SCOPE_PROCESS){ printf("Scope:PTHREAD_SCOPE_PROCESS\n"); } if(scope == PTHREAD_SCOPE_SYSTEM){ printf("Scope:PTHREAD_SCOPE_SYSTEM\n"); } } if(pthread_attr_getinheritsched(&attr, &inherit) == 0){ if(inherit == PTHREAD_INHERIT_SCHED){ printf("InheritSched:PHREAD_INHERIT_SCHED\n"); } if(inherit == PTHREAD_EXPLICIT_SCHED){ printf("InheritSched:PHTREAD_EXPLICIT_SCHED\n"); } } if(pthread_attr_getschedpolicy(&attr, &policy) == 0){ if(policy == SCHED_FIFO){ printf("schedPolicy:SCHED_FIFO\n"); } if(policy == SCHED_RR){ printf("SchedPolicy:SCHED_RR\n"); } else{ printf("SchedPolicy:SCHED_OTHER\n"); } } if(pthread_attr_getschedparam(&attr, ¶m) == 0){ printf("SchedPriority:%d\n", param.__sched_priority); } pthread_attr_destroy(&attr); } pthread_exit(&retval); } int main(){ int count; pthread_t thread; int *retval; if(pthread_create(&thread, NULL, my_thread, (void*)NULL) != 0){ printf("Count not create thread!\n"); return -1; } if(pthread_join(thread, (void **)(&retval)) != 0){ printf("No thread to join!\n"); return -2; } return 0; }
运行结果:
相关文章推荐
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)---实时调度
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)---实时调度
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)---实时调度
- Linux 多线程编程 线程属性
- Linux 多线程编程( POSIX )( 二 )----->代码区 ( pthread_attr_t 线程属性实例 )
- Linux 多线程编程( POSIX )( 二 )----->pthread_attr_t 线程属性
- 【原创】《Linux高级程序设计》杨宗德著 - Linux多线程编程 - 线程属性控制 分类: Linux --- 应用程序设计 2014-11-30 20:54 68人阅读 评论(0) 收藏
- Linux 多线程编程( POSIX )( 二 )----->pthread_attr_t 线程属性
- 【原创】《Linux高级程序设计》杨宗德著 - Linux多线程编程 - 线程属性控制
- Linux 多线程编程( POSIX )( 二 )----->pthread_attr_t 线程属性
- Linux下多线程编程__线程的创建pthread_create与退出pthread_exit,等待当前线程退出pthread_join,获取线程ID pthread_self
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)---实时调度(代码)
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)---实时调度(代码)
- 【PTHREAD】linux 多线程编程---Mutex实现Service线程和work线程
- posix多线程有感--线程高级编程(线程属性pthread_attr_t)---实时调度(代码)
- (转)Linux 多线程编程---pthread_testcancel()等讲解
- Linux多线程实践(3) --线程属性