线程创建函数pthread_create
int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);
第一个参数为指向线程标示符的指针,线程创建时,这个指针指向的变量中将被写入一个标示符,我们用该标示符来引用新线程
第二个参数用来设置线程属性,大多时候设为NULL,采用系统默认设定
第三个参数是线程运行函数的起始地址,我们要传递一个函数地址,该函数有一个void 的指针,返回值也是一个void的指针
第四个参数是线程运行函数的参数
线程等待
int pthread_join(pthread_t thread, void **value_ptr);
第一个参数为被等待的线程标示符,第二个参数是用户定义的指针,他可以存储被等待线程的返回值。这个线程是一个线程阻塞函数,调用它的函数将一直等待到被阻塞的线程结束为止,并回收资源,此函数相当于收集子进程中wait
线程结束
void pthread_exit(void* retval)
注意:一个线程不能被多个线程等待,否则第一个接收到信号的线程成功返回,其余调用pthread_join的线程则返回错误代码ESRCH