【发布时间】:2011-11-20 16:14:56
【问题描述】:
在man page 中,似乎即使您将信号量初始化为值 1:
sem_init(&mySem, 0, 1);
通过多次调用,它仍然可以递增到大于 1 的值
sem_post(&mySem);
但在这个code example 中,评论似乎有不同的想法:
sem_init(&mutex, 0, 1); /* initialize mutex to 1 - binary semaphore */
是否可以在 C 中初始化严格的二进制信号量?
注意:在这种情况下这样做而不是使用互斥锁的原因是 sem_post 和 sem_wait 可能被不同的线程调用。
【问题讨论】: