生产者消费者模式概述:生产者消费者模式是一个十分经典的多线程协助的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。
所谓生产者消费者问题,实际上是包含了两类线程:
- 一类是生产者线程用于产生数据
- 一类是消费者线程用于消费数据
为了解耦生产者和消费者的关系,通常采用一个共享的数据区域,就像一个仓库
- 生产者生产数据之后直接放在共享区域中,不用关心消费者的行为
- 消费者只需要获取共享区域中的数据,并不需要关系生产者的行为
当共享区域中没有数据可以供消费者获取时,消费者就要提醒生产者生产数据
当共享区域有数据没有被使用时,生产者就提醒消费者来获取数据,这就是生产和消费过程中的等待和唤醒。
为了体现生产和消费过程中的等待和唤醒,Java提供了几个方法供我们使用,这几个方法在Object类中。