当前位置: 技术问答>linux和unix
请高人指点:在unix下,如何实现二值信号量
来源: 互联网 发布时间:2016-01-20
本文导语: 通过sem_wait,sem_post可以实现计数信号量,即:即使我连续两次调用sem_post,也不会报错,只会将信号量的值加2。现在我需要的是信号量的状态只有两个,当连续两次sem_post操作时会报错,请问该如何实现呢,谢谢了!...
通过sem_wait,sem_post可以实现计数信号量,即:即使我连续两次调用sem_post,也不会报错,只会将信号量的值加2。现在我需要的是信号量的状态只有两个,当连续两次sem_post操作时会报错,请问该如何实现呢,谢谢了!!
|
sem_getvalue( semfd , &value ) ;
if ( value >= 1 )
return -1;
else
sem_post();
if ( value >= 1 )
return -1;
else
sem_post();
|
这个需求不应该使用信号量,既然只有两个状态,用mutex就足够了