名称
pthread_join -- 等待线程结束
概要
#include <pthread.h>
int
pthread_join(pthread_t thread,void **value_ptr);
描述
除非目标线程已经终止,否则函数pthread_join()会暂停调用线程的执行,直到目标线程终止为止。
当传入一个非NULL的参数value_ptr 来调用函数pthread_join() 并成功返回时,正在终止的线程传给函数pthread_exit() 的值被储存在由value_ptr所引用的位置。当函数pthread_join() 成功返回时,目标线程已经被终止了。对同一个目标线程同时多次调用函数pthread_join() 的结果是未定义的。若调用函数pthread_join()的线程被取消,则目标线程未被分离。
返回值
若执行成功,则函数pthread_join()将返回零。否则,将返回一个错误码来指示错误。
错误
函数pthread_join()在以下情形下会失败:
[EINVAL] 实现已经检测到由线程指定的值没有引用到可连接的线程。
[ESRCH] 没有发现对应于给定线程ID thread的线程。
[EDEADLK] 检测到死锁或参数thread的值指定的是调用函数pthread_join()的线程。
另请参阅:
wait(2), pthread_create(3)
标准:
函数pthread_join()符合ISO/IEC 9945-1:1996 (``POSIX.1'')这一标准。
BSD 2010 年1月23日 BSD
来源:CSDN
作者:test_dang
链接:https://blog.csdn.net/test_dang/article/details/103570115