版权声明:本文为博主原创,未经博主允许不得转载。 https://blog.csdn.net/sss_0916/article/details/90043707
生产者与消费者模型
什么是生产者消费者模型?
生产者消费者模型就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里去,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者之间的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。
基于阻塞队列的生产者消费者模型
阻塞队列
在多线程编程中阻塞队列(Blocking Queue)是一种常用于实现生产者和消费者模型的数据结构。它与普通队列的区别在于,当队列为空时,从队列取元素的操作将会被阻塞,直到队列中被放入了元素;当队列满时,往队列中放元素的操作也会被阻塞,直到有元素被从队列中取出(以上操作都是基于不同的线程来说的,线程在对阻塞队列进程操作时会被阻塞)。