创建线程:#include
int pthread_create(pthread_t *tidp, ,const pthread_attr_t *attr,void *(*start_rtn)(void),void *arg)
tidp 线程ID attr 线程属性,一般为空 函数返回0代表成功
start_rtn 线程要执行的函数 arg start_rtn的参数
终止线程:进程中的任何一个线程调用exit或_exit,那么整个进程就会终止。线程的正常退出方式
1、线程从启动例程中返回,即return
2、线程被另一个进程终止
3、线程自己调用pthread_exit函数
线程等待:int pthread join(pthread_t tid,void **rval_ptr)
tid 等待退出的线程id
rval_ptr 线程退出返回值的指针
清除:从pthread_cleanup_push到pthread_cleanup_pop之间的程序段中的终止动作(不包括return)会调用pthread_cleanup_push指定的清理函数
void pthread_cleanup_push(void(*rtn)(void *),viod *arg) 将清除函数压入清除栈
rtn 清除函数 arg 清除函数的参数
void pthread_cleanup_pop(int execute)
execute 决定执行到pthread_cleanup_pop时是否在弹出清除函数的同时,执行清除函数,1执行,0不执行