2

在 C 编程语言中,为什么我们需要一个特殊的 sem_t 类型来定义信号量?那不能是一个整数吗? sem_t 是如何定义的?sem_post 和 sem_wait 函数是如何实现的?编辑:像 GNU C 库这样的示例实现会很棒。

4

1 回答 1

4

信号量是操作系统内核管理的对象,因此 sem_t 将是操作系统特定的,信号/等待调用也是如此,因为它们也必然会调用操作系统内核。

通常,信号量由一个单元计数和一个等待线程的队列来实现。

于 2013-04-18T13:55:57.840 回答