生产者消费者问题:怎么平衡生产和消费
生产者消费者问题:怎么平衡生产和消费
你去奶茶店点单:
- 店里没有做好的奶茶 → 你等(消费者等待)
- 店里做好的奶茶堆成山 → 做好的放哪?(生产者问题)
生产者-消费者问题就是研究怎么平衡"生产和消费",让系统高效运转。
一、问题描述
生产者: - 生产产品 - 放到缓冲区 - 速度可能快也可能慢 消费者: - 从缓冲区取产品 - 消费产品 - 速度可能快也可能慢 缓冲区: - 容量有限 - 放和取都要安全┌─────────┐ ┌─────────────────┐ ┌─────────┐ │生产者A │ ───→ │ │ ───→ │消费者X │ │生产者B │ │ 缓冲区 │ │消费者Y │ │生产者C │ │ (有界队列) │ │消费者Z │ └─────────┘ └─────────────────┘ └─────────┘二、为什么这是个问题?
问题1:缓冲区满了
生产者一直放 消费者拿得慢 缓冲区满了! 生产者:等消费者消费