首先看一下两个函数的定义:
int pthread_join(
pthread_t tid ,
void **status
);
// 参数tid 是希望等待的线程的线程号,status 是指向线程返回值的指针,线程的返回值就是pthread_exit 中的value_ptr 参数,或者是return语句中的返回值。该函数可用于线程间的同步
int pthread_detach( pthread_t pid );
//参数tid 是希望等待的线程的线程号, 把指定的线程转变为脱离状态
一 个线程或者是可汇合的(joinable,缺省值),或者是脱离的(detached)。当一个可汇合的线程终止时,它的线程ID和退出状态将留到另一 个线程对它调用pthread_join。脱离线程却象守护进程:当它们终止的时,所有相关资源都被释放,我们不能等待它们终止。如果一个线程需要知道另 一个线程什么时候终止,那就最好好吃第二个线程的可汇合状态。
下面 通过例子说明:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h&