C语言 pthread_join

线程回收
pthread_join,阻塞等待线程退出,获取线程退出状态,对应进程中 waitpid() 函数
int pthread_join(pthread_t thread, void **retval);
返回
成功:0;失败:错误号
参数:
thread:线程ID (不是指针);
retval:所调用函数的返回值

对比进程

进程中:main返回值、exit参数–>int;等待子进程结束 wait 函数参数–>int *
线程中:线程主函数返回值、pthread_exit–>void *;等待线程结束 pthread_join 函数参数–>void **

#include 
#include 
#include 

void *tfn(void *arg)//线程函数
{
	printf("线程 Thread_ID = %lu\n", pthread_self());
	sleep(5);
	return NULL;
}

int main(void)
{
	pthread_t tid;
	pthread_create(&tid, NULL, tfn, NULL);//创建线程
	void *ret;
	pthread_join(tid,&ret);//线程回收
	printf("ret return %d\n", (int)ret);

	return 0;
}

你可能感兴趣的:(c)