这个问题与我正在处理的生产者/消费者问题的解决方案有关。我们被要求使用pthreads来解决问题。为了为有界缓冲区创建空的和完整的信号量,我使用了semaphore.h,但我被告知有一种方法可以在没有semaphore.h的情况下完成这个。
是否有使用pthread API创建信号量的标准方法?也就是说,仅使用pthreads有一个简单的等价物:
sem_init(&full, 0, 0);
sem_init(&empty, 0, BUFFER_SIZE);
sem_wait(&empty);
sem_post(&full);
etc.
感谢您提供有关此主题的任何信息。
答案 0 :(得分:0)
<semaphore.h>
函数(sem_init()
/ sem_open()
等) pthreads信号量API。
也许您被引导使用条件变量而不是sempahores来解决这个问题?