c - semaphore.h 中信号量的 pthread API 等效项

标签 c pthreads semaphore 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。

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

关于c - semaphore.h 中信号量的 pthread API 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29245543/

相关文章:

c# - SemaphoreSlim 的 Wait(Int32) 方法在传递零时是否立即返回?

c - 有没有办法读取EOF之后的高清数据?

c - 将空间扫描为字符

c - 如何确保服务器区分从同一台计算机上的两个不同外壳运行的两个不同的 TCP 客户端?

c - 第一次使用线程

operating-system - 信号量必须是原子的原因是什么

C 语言中可以用二进制数索引数组吗?

c - execlp 命令不考虑星号通配符

C++ pthread'ed 进程运行速度比单线程问题慢

java - JAVA中使用信号量控制线程访问