1.线程连接 pthread_join
函数原型
int pthread_join (pthread_t __th, void **__thread_return);
各个参数含义如下:
- __th 等待的线程的id
- __thread_return 值为pthread_exit函数里的参数值
函数pthread_join用来等待一个线程结束。其调用者将被挂起并等待__th线程终止。
注意:一个线程不能够被多个线程等待。
示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
void *assisthtead(void *arg)
{
printf("I am helping to do some jobs\n");
sleep(3);
pthread_exit(NULL);
}
int main(int argc, char **argv)
{
pthread_t assistthid;
int status;
if (pthread_create(&assistthid, NULL, assisthtead, NULL) != 0)
{
printf("thread creation failed\n");
exit(1);
}
// 主线程阻塞,等待assistthid线程结束
pthread_join(assistthid, (void **)&status);
printf("assisthtead's exit is caused %d\n", status);