使用信号量的生产者-消费者问题

来源:互联网 发布:汽车行业前景 知乎 编辑:程序博客网 时间:2024/04/28 16:37

该解决方案使用了三个信号量:一个称为full,用来记录充满的缓冲槽数目,一个称为empty,记录空的缓冲槽数目,一个是mutex用来确保生产者和消费者不会同时访问缓冲区。full的初值为0,empty的初值为缓冲区中槽的数目,mutex的初值为1。供两个或多个进程使用的信号量,其初值为1,保证同时只有一个进程可以进入临界区,称作二元信号量(binary semaphore)。如果每个进程在进入临界区前都执行一个down操作,并在刚刚退出时执行一个up操作,就能实现互斥。

 

引自《现代操作系统》

原创粉丝点击