三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

生产者消费者问题:怎么平衡生产和消费

生产者消费者问题:怎么平衡生产和消费

生产者消费者问题:怎么平衡生产和消费

你去奶茶店点单:

  • 店里没有做好的奶茶 → 你等(消费者等待)
  • 店里做好的奶茶堆成山 → 做好的放哪?(生产者问题)

生产者-消费者问题就是研究怎么平衡"生产和消费",让系统高效运转。

一、问题描述

生产者: - 生产产品 - 放到缓冲区 - 速度可能快也可能慢 消费者: - 从缓冲区取产品 - 消费产品 - 速度可能快也可能慢 缓冲区: - 容量有限 - 放和取都要安全
┌─────────┐ ┌─────────────────┐ ┌─────────┐ │生产者A │ ───→ │ │ ───→ │消费者X │ │生产者B │ │ 缓冲区 │ │消费者Y │ │生产者C │ │ (有界队列) │ │消费者Z │ └─────────┘ └─────────────────┘ └─────────┘

二、为什么这是个问题?

问题1:缓冲区满了

生产者一直放 消费者拿得慢 缓冲区满了! 生产者:等消费者消费

问题2:缓冲区空了

← 返回列表