发布于 2020-11-02 16:32:33
不同之处在于其目的:二进制信号量通常用于实现互斥,而计数信号量则限制访问。但最终,二进制信号量只是计数信号量的一个特例。
细节仍然取决于实现。例如,在POSIX标准中,信号量是计数信号量。因此,初始值(在未命名信号量的情况下用sem_init()定义)实际上将定义它是否是二进制的。然而,计数sempahore仍然是一个计数信号量,使用更多的sem_post() ( remains )而不是sem_wait()(获取)将使信号量的值超过初始值(演示)。顺便说一下,这还允许在已经锁定的状态下创建一个信号量(初始值为0)。
https://softwareengineering.stackexchange.com/questions/418599
复制相似问题