这个问题与我正在研究的生产者/消费者问题的解决方案有关。我们被要求使用 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.
感谢您提供有关此主题的任何信息。
最佳答案
<semaphore.h>
函数( sem_init()
/sem_open()
等)是 pthreads 信号量 API。
也许您被引导使用条件变量而不是信号量来解决这个问题?
关于c - semaphore.h 中信号量的 pthread API 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29245543/