- 4
- 0
- 约2.47千字
- 约 4页
- 2019-08-23 发布于福建
- 举报
四:thread
1.什么是线程的detach状态?怎样设置?
detach状态:
一般情况下,线程终止后,其终止状态一直保留到其它线程调用pthread_join获取它的状态为止。
但是线程也可以被置为detach状态,这样的线程一旦终止就立刻回收它占用的所有资源,而不保留终止状态。
不能对一个已经处于detach状态的线程调用pthread_join,这样的调用将返回EINVAL。
设置方法:
对一个尚未detach的线程调用pthreadjoin或 pthreaddetach都可以把该线程置为detach状态,也就是
说,不能对同一线程调用两次pthreadjoin,或者如果已经对一个线程调用了pthreaddetach就不能再调用
pthread_join了。
int pthread_detach(pthread_t tid);
返回值:成功返回0,失败返回错误号。
2.叙述函数pthread_join的功能。
函数pthread_join用来等待一个线程的结束,线程间同步的操作。
头文件 : #include pthread.h
函数定义: int pthreadjoin(pthreadt th, void **value_ptr );
th: 被等待线程的标识符
value_ptr :用户定义指针,用来存储被等待结束线程的返回值,
调用该函数的线程将挂起等待,直到id为th的线程终止。
3.进程中使用return、exit、pthreadexit和pthreadcancel分别起到什么作用?
return,如果thread线程通过return返回,value_ptr所指向的单元里存放的是thread线程函数的返回值。
exit 终止整个进程。如果进程中的任一线程调用了exit,那么整个进程就会终止。
调用pthreadexit终止自己,valueptr所指向的单元存放的是传给pthread_exit的参数 。
调用pthreadcancel终止同一进程中的另一个线程,valueptr所指向的单元里存放的是常数
PTHREAD_CANCELED,即((void *) -1)。
4.解释关键字restrict的作用。
详细内容请参考:教学文档/pthread/0-restrict.doc
关键字restrict只用于限定指针。
该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于该指针的,即不存在其它进行修改操作
的途径,这样的后果是帮助编译器进行更好的代码优化,生成更有效率的汇编代码。
5.线程都有哪些常用属性?在创建时和创建后都怎样进行设置?
线程的属性结构为pthreadattrt,在头文件pthread.h中定义 ,属性值不能直接设置,须使用相关函数进行操
作,初始化的函数为 pthreadattrinit ,这个函数必须在pthread_create函数之前调用。属性对象主要包括是否
绑定、是否分离、堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省的堆栈、与父进程同样级别
的优先级。
线程创建之前,通过各种属性设置函数来给结构体pthreadattrt变量赋值,在创建变量时将pthreadattrt结构
体变量作为参数传入pthraed_create()函数创建已设定某些属性进程。
比如进程 的优先级设置
线程的优先级放在结构schedparam中,目前仅有一个schedpriority 整型变量表示线程的运行优先级。这个参
数仅当调度策略为实时(即SCHEDRR或SCHEDFIFO)时才有效,并可以在运行时通过
pthreadsetschedparam()函数来改变,缺省为0。用函数pthreadattr_getschedparam和函数
pthreadattrsetschedparam进行存放 。
6.pthreadcleanuppush和pthreadcleanuppop这两个函数的作用是什么?什么时候执行?
线程可以安排它退出时需要调用的函数,这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处
理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。
pthreadcleanuppush()函数执行压栈(注册)清理函数的操作。
pthreadcleanuppop()函数执行从栈中删除清理函数的操作。
函数原型:
void pthreadcleanuppush( void (*rtn)(void *), void *arg);
rtn 处理程序入口地址
arg 传递给处理函数的参数
void pthreadcleanuppop(int execute);
execute表示执行时是否在弹出清理函数的同时执行该注册函数,为0表示不执行
您可能关注的文档
最近下载
- 金融服务教学工作计划范文.pptx
- 2026山西国际能源集团秋招试题及答案.doc VIP
- AB-罗克韦尔PowerFlex7000 中压交流变频器-风冷型(“B”框架) 用户手册.pdf
- 2025年中考语文复习 现代文阅读(全国)第1部分 专题01:记叙文阅读之标题含义及作用(练习)(学生版).pdf VIP
- 山姆必买8样商品推荐.docx VIP
- A公司营运资金管理存在问题及对策分析.doc VIP
- 2023注册消防工程师(消防安全技术实务)题库带答案(黄金题型).docx
- 医生党员自我评议.docx VIP
- 小区物业服务投标方案524页.doc VIP
- 树立和践行正确政绩观专题研讨个人发言材料.docx VIP
原创力文档

文档评论(0)