0x00 引言
生产者-消费者模式是一个十分经典的多线程并发协作[1]的模式,严格地讲并不属于设计模式的范畴。
在这个模式中,负责产生数据的模块被称为生产者,而处理数据的模块就称为消费者。并且在生产者与消费者之间设立一个缓冲区(数据仓库),当生产者生产数据时锁住仓库,不让消费者访问,当消费者消费时锁住仓库,不让生产者访问仓库。
0x01 生产者消费者模式
更复杂的生产者消费者模式应该能实现一部分线程被用于去生产数据,另一部分线程去处理数据。这里,我们将只有一个生产者线程和一个消费者线程的情况称为单缓冲,将多生产者线程、多消费者线程的情况称为多缓冲。
1 | 1 单缓冲 |
1、单缓冲
1 |
|
0x02 引用文献
[1]https://jenkov.com/tutorials/java-concurrency/producer-consumer.html