Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 C 编程语言中,为什么我们需要一个特殊的 sem_t 类型来定义信号量?那不能是一个整数吗? sem_t 是如何定义的?sem_post 和 sem_wait 函数是如何实现的?编辑:像 GNU C 库这样的示例实现会很棒。
信号量是操作系统内核管理的对象,因此 sem_t 将是操作系统特定的,信号/等待调用也是如此,因为它们也必然会调用操作系统内核。
通常,信号量由一个单元计数和一个等待线程的队列来实现。