四:thread
detach 状态?怎样设置?
detach 状态:
一般情况下,线程终止后,其终止状态一直保留到其它线程调用 pthread_join 获四:thread
detach 状态?怎样设置?
detach 状态:
一般情况下,线程终止后,其终止状态一直保留到其它线程调用 pthread_join 获取它
的状态为止。
但是线程也可以被置为 detach 状态,这样的线程一旦终止就立刻回收它占用的所有
资源,而不保留终止状态。
不能对一个已经处于 detach 状态的线程调用 pthread_join,这样的调用将返回
EINVAL。
设置方法:
对一个尚未 detach 的线程调用 pthreadjoin 或pthread detach 都可以把该线程置为
detach 状态,也就是
说,不能对同一线程调用两次 pthreadjoin,或者如果已经对一个线程调用了
pthreaddetach 就不能再调用
pthread_join 了。
int pthread_detach(pthread_t tid);
返回值:成功返回 0,失败返回错误号。
pthread_join 的功能。
函数 pthread_join 用来等待一个线程的结束,线程间同步的操作。
头文件 :#include<>
函数定义:intpthread join(pthreadtth,void**value_ptr);
th: 被等待线程的标识符
value_ptr: 用户定义指针,用来存储被等待结束线程的返回值,
调用该函数的线程将挂起等待,直到 id 为 th 的线程终止。
return、exit、pthreadexit 和 pthreadcancel 分别起到什么作用?
return,如果 thread 线程通过 return 返回,value_ptr 所指向的单元里存放的是
thread 线程函数的返回值。
exit 终止整个进程。如果进程中的任一线程调用了 exit,那么整个进程就会终止。调用 pthreadexit 终止自己,valueptr 所指向的单元存放的是传给 pthread_exit 的
参数 。
调用 pthreadcancel 终止同一进程中的另一个线程,valueptr 所指向的单元里存放
的是常数
PTHREAD_CANCELED,即((void*)-1) 。
restrict 的作用。
详细内容请参考:教学文档/pthread/0-
关键字 restrict 只用于限定指针。
该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于该指针
linux知识点总结 来自淘豆网www.taodocs.com转载请标明出处.