当前位置: 技术问答>linux和unix
生产者消费者问题为什么不可以共用一个信号量,如果这个信号量可以设置取值固定为0到N,即当信号量取值为N的时候阻塞进程,是否也可以?
来源: 互联网 发布时间:2017-03-20
本文导语: 是不是硬件原因?历史原因? | 生产消费者就两种做法: 1, 两个信号量 + 1个互斥量(如果信号量初始值>1的话,需要互斥量同步并发访问) 2, 1个条件变量 + 1个当前使用的容量变量 +...
是不是硬件原因?历史原因?
|
生产消费者就两种做法:
1, 两个信号量 + 1个互斥量(如果信号量初始值>1的话,需要互斥量同步并发访问)
2, 1个条件变量 + 1个当前使用的容量变量 + 1个最大容量变量。
1, 两个信号量 + 1个互斥量(如果信号量初始值>1的话,需要互斥量同步并发访问)
2, 1个条件变量 + 1个当前使用的容量变量 + 1个最大容量变量。
|
>当信号量取值为N的时候阻塞进程
所以你想怎么做到这点?直接说这个信号量能满足这个条件,那这个就不叫信号量了。你要是自己手工写一个if(semaphore==N) sleep();,那是达不到要求的。
所以你想怎么做到这点?直接说这个信号量能满足这个条件,那这个就不叫信号量了。你要是自己手工写一个if(semaphore==N) sleep();,那是达不到要求的。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。