pthread API 相当于 semaphore.h 中的信号量

pthread API equivalents of semaphores in semaphore.h

这个问题与我正在处理的 producer/consumer 问题的解决方案有关。我们被要求使用 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.

也许您被引导使用条件变量而不是信号量来解决这个问题?