1、線程
創(chuàng)建線程
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
參數(shù):- thread存儲(chǔ)線程ID
- attr線程屬性,NULL默認(rèn)屬性8M的??臻g
- start_routine線程的執(zhí)行體函數(shù)
- arg用于向start_routine傳遞的參數(shù)
返回:成功 return 0;
結(jié)束一個(gè)進(jìn)程
void pthread_exit(void *retval);
等待一個(gè)進(jìn)程結(jié)束
int pthread_join(pthread_t thread, void **retval);
2、互斥量
初始化互斥量
int pthread_mutex_init(pthread_mutex_t * mutex, const pthread_mutexattr_t * attr);
上鎖
int pthread_mutex_lock(pthread_mutex_t *mutex);
解鎖
int pthread_mutex_unlock(pthread_mutex_t *mutex);
銷毀互斥量
int pthread_mutex_destroy(pthread_mutex_t *mutex);
3、條件量
初始化條件量
int pthread_cond_init(pthread_cond_t * cond, const pthread_condattr_t * attr);
產(chǎn)生一個(gè)條件量,并發(fā)送
int pthread_cond_signal(pthread_cond_t *cond);
等待一個(gè)條件量的產(chǎn)生,如果條件量已經(jīng)發(fā)送過(guò),wait將處于死等狀態(tài)
int pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t *mutex);
銷毀條件量
int pthread_cond_destroy(pthread_cond_t *cond);
4、信號(hào)量
初始化信號(hào)量
int sem_init(sem_t *sem, int pshared, unsigned int value);
P操作:消耗一個(gè)信號(hào)量,為0時(shí)阻塞
int sem_wait(sem_t *sem);
V操作:產(chǎn)生一個(gè)信號(hào)量
int sem_post(sem_t *sem);
銷毀信號(hào)量
int sem_destroy(sem_t *sem);
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。