int pthread_create(pthread_t* tid, const pthread_atrr, void*(*func)(void*), void* arg);
func:接受void*,返回void*,arg是唯一的參數
pthread_join:等待一個給定線程終止。當一個joinable的線程終止時,他的線程id和退出狀態留存到另一個線程對他調用pthread_join.
pthread_self:獲得自身線程id
pthread_detch:使線程脫離,更像是守護進程,線程終止時,所有的相關資源都被釋放,不能等待他們終止
pthred_exit:線程終止,其他兩種線程終止(線程函數放回,進程調用exit)
互斥鎖:pthread_mutex
int pthread_mutex_lock(pthread_mutex_t* mptr);
int pthread_mutex_unlock(pthread_mutex_t* mptr);
我們需要一個讓主循環進入睡眠,直到某個線程通知他有事可做才醒過來。條件變量結合互斥鎖能夠提供這個功能。
互斥鎖提供互斥機制,條件變量提供信號機制
int pthread_cond_wait(pthread_cond_t* cptr, pthread_mutex_t* mptr);//把調用線程投入睡眠並釋放調用線程持有的互斥鎖。當收到信號喚醒時,線程重新獲得該鎖
int pthread_cond_signal(pthread_cond_t* cptr);//喚醒等在相應條件變量上的單個線程
int pthread_cond_broadcast(pthread)cond_t* cptr);//喚醒等在相應條件變量上的所有線程
int pthread_cond_timewait(pthread_cond_t* cptr, pthread_mutex_t* mptr, const struct timespec* abstime);//等待條件變量設置一個超時時間
