日期:2014-05-16  浏览次数:20688 次

请高人指点:在unix下,如何实现二值信号量
通过sem_wait,sem_post可以实现计数信号量,即:即使我连续两次调用sem_post,也不会报错,只会将信号量的值加2。现在我需要的是信号量的状态只有两个,当连续两次sem_post操作时会报错,请问该如何实现呢,谢谢了!!

------解决方案--------------------
sem_getvalue( semfd , &value ) ;
if ( value > = 1 )
return -1;
else
sem_post();
------解决方案--------------------
这个需求不应该使用信号量,既然只有两个状态,用mutex就足够了