“生产者消费者”问题是一个著名的编程问题。问题描述如下: 有一个有限容量的缓冲区和两个线程:生产者和消费者。他们分别不停地把产品放入缓冲区和从缓冲区中取走产品。生产者在缓冲区满的时候必须等待,消费者在缓冲区空的时候也必须等待。另外,因为缓冲区是临界资源,所以生产者和消费者之间必须互斥执行。 编程要求:分别实现生产者类 Producer 、消费者类 Consumer 和一个缓冲区类 Storage ,生产者负责向缓冲区内存放数据(随机整数),消费者从缓冲区内按照生产者生产的顺序取出数据。当缓冲区为空时,消费者需要等待生产者放入数据后取数;当缓冲区满时,生产者应等待消费者取走数据后继续放入数据。