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