- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux pthread手册
#include pthread.h
1、创建
int pthread_create( pthread_t*tid, constpthread_attr_t*attr,void *(*func)(void *),void *arg);
attr: 线程属性包括:优先级、初始栈大小,是否应该成为一个守护线程。
缺省设置,NULL
后面是线程要执行的函数和参数
成功返回 0
2、等待一个给定线程终止
int pthread_join( pthread_t tid,void **status);
statues返回等待线程的返回值
3、得到自身的pid
pthread_tpthread_self(void);
4、pthread_detach函数
int pthread_detach(pthread_tpid );
把指定的线程转变为脱离状态
一个线程或者是可汇合的(joinable,缺省值),或者是脱离的(detached)。当一个可汇合的
线程终止时,它的线程ID 和退出状态将留到另一 个线程对它调用pthread_join。脱离线程
却象守护进程:当它们终止的时,所有相关资源都被释放,我们不能等待它们终止。如果一
个线程需要知道另 一个线程什么时候终止,那就最好好吃第二个线程的可汇合状态。
本函数通常由想让自己脱离的线程调用,如下语句
pthread_detach(pthread_self());
5、终止一个线程
void pthread_exit(void *statue);
指针sttus不能指向局部于调用对象,因为线程终止时这样的对象也消失
1.线程属性设置
我们用pthread_create 函数创建一个线程,在这个线程中,我们使用默认参数,即将该函数
的第二个参数设为NULL。的确,对大多数程序来说,使用默认属性就够了,但我们还是有
必要来了解一下线程的有关属性。
属性结构为pthread_attr_t,它同样在头文件 pthread.h中定义,属性值不能直接设置,须使
用相关函数进行操作,初始化的函数为 pthread_attr_init,这个函数必须在pthread_create 函
数之前调用。属性对象主要包括是否绑定、是否分离、
堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省的堆栈、与父进程同样
级别的优先级。
1.绑定
关于线程的绑定,牵涉到另外一个概念:轻进程(LWP:LightWeight Process)。轻进程可
以理解为内核线程,它位于用户层和系统层之间。系统对线程资源的分配、对线程的控制是
通过轻进程来实现的,一个轻进程可以控制 一个或多个线程。默认状况下,启动多少轻进
程、哪些轻进程来控制哪些线程是由系统来控制的,这种状况即称为非绑定的。绑定状况下,
则顾名思义,即某个线程 固定的绑在一个轻进程之上。被绑定的线程具有较高的响应速
度,这是因为CPU 时间片的调度是面向轻进程的,绑定的线程可以保证在需要的时候它总
有一个 轻进程可用。通过设置被绑定的轻进程的优先级和调度级可以使得绑定的线程满足
诸如实时反应之类的要求。
设置线程绑定状态的函数为 pthread_attr_setscope,它有两个参数,第一个是指向属性结构
的指针,第二个是绑定类型,它有两个取值: PTHREAD_SCOPE_SYSTEM(绑定的)和
PTHREAD_SCOPE_PROCESS(非绑定的)。下面的代码即创建了一个绑定的线程。
#i nclude pthread.h
pthread_attr_tattr;
pthread_ttid;
/*初始化属性值,均设为默认值*/
pthread_attr_init(attr);
pthread_attr_setscope(attr,PTHREAD_SCOPE_SYSTEM);
pthread_create(tid, attr,(void *)my_function,NULL);
2 . 线 程 分 离 状 态
线程的分离状态决定一个线程以什么样的方式来终止自己。非分离的线程终止时,其线程
ID和退出状态将保留,直到另外一个线程调用 pthread_join.分离的线程在当它终止时,所
有 的 资 源 将 释 放 , 我 们 不 能 等 待 它 终 止 。
设置线程分离状态的函数为 pthread_attr_setdetachstate(pthread_attr_t*attr,int detachstate)。
第二个参数可选
您可能关注的文档
- 新生儿室各层各级护士工作标准标准).doc
- 新生杯演讲赛.doc
- 新版2010南阳市企业大全.doc
- 新湖项目简况.ppt
- 新目标 初三 unit 5 PPT复习配套练习 Tina.doc
- 新目标八年级上册Unit 7 Where would you like to visit上课讲义.doc
- 新目标七年级英语下期中试题.doc
- 新目标英语八年级上Unit5 period 3教案.doc
- 新目标英语初一学案Unit 7(课时3).doc
- 新目标八下unit3_reading同课异构.ppt
- 复习备考:2021年广东省历史备考总结提升(中国近代史)课件.pptx
- 3微生物的实验室培养.pptx
- 2025届高考历史一轮复习课件:第17讲 国家出路的探索与列强侵略的加剧(57页).pptx
- 2024年宪法宣传周-宪法晨读PPT.pptx
- 复习课件:第8讲 三国至隋唐的文化(47页).pptx
- 复习课件:第16讲 两次鸦片战争与列强侵略的加剧(1).pptx
- 第6课 现代科技进步与人类社会发展 课件.pptx
- 二轮复习备考建议:聚焦学业质量,巩固必备知识,提升关键能力.pptx
- 第6课古代人类的迁徙和区域文化的形成课件(27页).pptx
- 第9课 两宋的政治和军事课件 (23页)(邓静).pptx
文档评论(0)