0
我經歷了Linux中提供的信號量API。信號的一個簡單的用法是我們可以使用pthread庫中的同步原語來實現信號量行爲嗎?
sem_wait()
//do something
sem_post()
能出類似的行爲在並行線程庫使用可用的同步原語來實現?
通過POSIX API的準備後,我想出了下面的代碼:
int a = COUNT_LIMIT; //global variable
pthread_mutex_t m1;
pthread_cond_t c1;
pthread_mutex_lock(&m1);
while(a==0){
pthread_cond_wait(&c1, &m1);
}
a--;
//do whatever i want to do, as resource is available
pthread_cond_signal(&c1,&m1);
pthread_mutex_unlock(&m1);
我相信這段代碼會做的伎倆,但什麼是最好的實踐遵循實現這一行爲呢?
感謝您指出我的錯誤! – innosam