1、每个POSIX线程有一个相连的属性对象来表示属性。线程属性对象的类型是pthread_attr_t,pthread_attr_t 在文件/usr/include/bits/pthreadtypes.h中定义。

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 = ;
pthread_attr_t attr;
struct sched_param param;
size_t stacksize;
int detachstate;
int scope;
int inherit;
int policy; if(pthread_attr_init(&attr) == ){
if(pthread_attr_getstacksize(&attr, &stacksize) == ){
printf("StackSize: %d\n", stacksize);
}
if(pthread_attr_getdetachstate(&attr, &detachstate) == ){
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) == ){
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) == ){
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) == ){
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, &param) == ){
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) != ){
printf("Count not create thread!\n");
return -;
}
if(pthread_join(thread, (void **)(&retval)) != ){
printf("No thread to join!\n");
return -;
}
return ;
}

运行结果:

LInux多线程编程----线程属性pthread_attr_t的更多相关文章

  1. Linux多线程编程——线程的创建与退出

    POSIX线程标准:该标准定义了创建和操纵线程的一整套API.在类Unix操作系统(Unix.Linux.Mac OS X等)中,都使用Pthreads作为操作系统的线程.Windows操作系统也有其 ...

  2. Linux系统编程 —线程属性

    在之前的章节中,我们在调用pthread_create函数创建线程时,第二个参数(即线程属性)都是设为NULL,即使用默认属性.一般情况下,使用默认属性已经可以解决我们开发过程中的大多数问题. 但是, ...

  3. Linux 多线程编程--线程退出

    今天分析项目中进程中虚存一直增长问题,运行10个小时虚存涨到121G ,RSS占用为16G 非常恐怖. Valgrind测试无内存泄漏. 内存32G 64bit系统信息如下: Linux线程使用方式是 ...

  4. LInux多线程编程----线程特定数据的处理函数

    1.pthread_key_t和pthread_key_create() 线程中特有的线程存储, Thread Specific Data .线程存储有什么用了?他是什么意思了?大家都知道,在多线程程 ...

  5. Linux多线程编程——线程的同步

    POSIX信号量 posix信号量不同于IPC中的信号量  常用的posix信号量函数   #include <semaphore.h> int sem_init(sem_t* sem,i ...

  6. Linux多线程编程小结

     Linux多线程编程小结 前一段时间由于开题的事情一直耽搁了我搞Linux的进度,搞的我之前学的东西都遗忘了,非常烦躁的说,如今抽个时间把之前所学的做个小节.文章内容主要总结于<Linux程序 ...

  7. Linux多线程编程初探

    Linux线程介绍 进程与线程 典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情.有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程 ...

  8. ZT 为什么pthread_cond_t要和pthread_mutex_t同时使用 || pthread/Linux多线程编程

    为什么线程同步的时候pthread_cond_t要和pthread_mutex_t同时使用 (2009-10-27 11:07:23) 转载▼ 标签: 杂谈 分类: 计算机 举一个例子(http:// ...

  9. 【操作系统作业-lab4】 linux 多线程编程和调度器

    linux多线程编程 参考:https://blog.csdn.net/weibo1230123/article/details/81410241 https://blog.csdn.net/skyr ...

随机推荐

  1. dependency与dependencyManagement区别

    在maven的pom文件中,有时候会见到dependencyManagement,它与denpendency有什么区别? 比方说,你在一个parent的pom里把你所需要的依赖包,版本号都写在depe ...

  2. thinkphp生成二维码

    /** * 生成二维码 * @param string $url url连接 * @param integer $size 尺寸 纯数字 */ function qrcode($url,$size=4 ...

  3. jquery中attr方法和prop方法的区别

    关于checked的属性,最重要的概念就是你要记住,它跟checked的状态值是毫无关系的,设置checked = "checked"或者checked = "true& ...

  4. 21. Blog接口开发

    一般的系统由登录.增删改查所组成.我们的Blog同样如此.我们会开发登录.创建博客.删除博客.修改博客.查询博客等功能.话不多说,我们直接展开实践吧. 思路分析 创建项目.既然我们要创建一个blog, ...

  5. Linux(四)—— 项目部署与ansible自动化部署

    目录 项目部署与ansible自动化部署 一.项目部署 二.ansible自动化部署(python自动化运维) 1.安装ansible 2.ansible例子 3.ansible自动化部署nginx ...

  6. Java DOM解析器 - 查询XML文档

    这是需要我们查询的输入XML文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0"?> ...

  7. ajaxfileupload上传文件出现SyntaxError:unexpected token <错误

    function ajaxFileUpload() { $.ajaxFileUpload ( { url: uri, secureuri: false, fileElementId: 'upFile' ...

  8. PHP实现RSA2加密

    PHP实现RSA2加密 1. 需要开启php的 php_openssl扩展 <?php /* * RSA2签名 * @param array 请求的参数 * @param string 私钥 * ...

  9. PHP 图片裁切

    PHP CLASS TO CREATE IMAGE THUMBANILS Some years ago, I wrote a PHP class to create image thumbnails ...

  10. filter-method 在elementUI 表格中的使用

    <el-table-column prop="pubArea" // 表格data 中对应的字段 column-key="pubArea" // 过滤条件 ...