天天看點

線程程序間通信機制

利用線程間共享的全局變量進行同步 條件量

利用線程間共享

int pthread_cond_init(pthread_cond_t *cond,pthread_condattr_t *cond_attr);

int pthread_cond_wait(pthread_cond_t *cond,pthread_mutex_t *mutex);

int pthread_cond_timedwait(pthread_cond_t *cond,pthread_mutex_t *mutex,const timespec *abstime);

int pthread_cond_destroy(pthread_cond_t *cond);

int pthread_cond_signal(pthread_cond_t *cond);

int pthread_cond_broadcast(pthread_cond_t *cond);

int pthread_cond_timedwait(pthread_cond_t *cond,pthread_mutex_t *mutex,const struct timespec *abstime);

int sem_wait(sem_t *sem);//給信号量減1 對一個值為0的信号量調用sem_wait 這個函數将會等待直到有其他線程使它不再為0

int sem_post(sem_t *sem);

int sem_destroy(sem_t *sem);

函數的作用在我們用信号量後進行清理

occupied empty 解決生産者 消費者線程之間的同步問題

繼續閱讀