信号量的值只在1和0之间变化的信号量,被称为二值信号量

注意:相同颜色的线为一条路径
- 先定义一个二值信号量,并将其初始值设置为
1
- 生产者线程要访问共享资源的时候,先访问这个二值信号量,因为初始值为
1,所以生产者线程可以顺利的访问到共享资源,二值信号量变为0 。
- 消费者线程要访问共享资源的时候,因为这个二值信号量已经变为
0了,所以无法访问。
- 当生产者线程使用完共享资源之后,再释放这个二值信号量,这个时候消费者线程就可以访问共享资源了。
- 然后消费者线程使用完共享资源之后,再释放这个二值信号量,这个时候生产者线程就可以访问共享资源了。
- 这样就实现了互斥