生产者消费者问题:线程同步问题
生产者--->产品(带缓冲区)--->消费者
生产者生产产品放到缓冲区,消费者从缓冲区拿产品消费,当缓冲区中产品满了之后,生产者会挂起,只有当消费者消费了一个产品之后,缓冲区产生一个空位,生产者才会继续生产。
对于缓冲区的访问是互斥的,缓冲区满了生产者要挂起,缓冲区空了消费者要挂起。
解决生产者消费者问题实际上是要解决线程间互斥关系问题(指的是共享资源)同步关系问题(线程的步调)
由于缓冲区是临界资源,它一个时刻只允许一个生产者放入消息,或者一个消费者从中取出消息,所以这里我们需要解决一个互斥访问的问题。
同时生产者和消费者又是一- 个相互协作的关系,只有生产者生产之后,消费者才能消费,所以我们还需要解决一个同步的问题。