- 问题描述
- 数据结构:
- 生产者/消费者
- 缓存区(共享资源)
- 规则:
- 生产/消费者同时操作缓存区。
- 当缓存区为空的时候,消费者不能消费,即消费者阻塞。
- 当缓存区为满的时候,生产者不能生产,即生产者阻塞。
- 生产者之间互斥,消费者之间同步。
- 数据结构:
- 代码实现
- 使用wait() / notifyAll(),简单实现:
- 当缓存区满或者空的时候,调用wait方法等待,当生产者生产一个资源或者消费者消费一个资源之后,唤醒所有线程。
- 使用wait() / notifyAll(),简单实现:
public class Model_P_C {
// 资源数
public static int count = 0;
// 缓冲区总大小