建立線程:#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不執行