多线程|基于阻塞队列和环形队列的生产者消费者模型架构

 


前言

那么这里博主先安利一下一些干货满满的专栏啦!

Linux专栏icon-default.png?t=N3I4https://blog.csdn.net/yu_cblog/category_11786077.html?spm=1001.2014.3001.5482操作系统专栏icon-default.png?t=N3I4https://blog.csdn.net/yu_cblog/category_12165502.html?spm=1001.2014.3001.5482手撕数据结构icon-default.png?t=N3I4https://blog.csdn.net/yu_cblog/category_11490888.html?spm=1001.2014.3001.5482

为什么需要生产者消费者模型

生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过队列来进行通讯,所以生产者生产完数据(或任务)之后不用等待消费者处理,直接扔给队列,消费者不找生产者要数据(或任务),而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个缓冲区就是用来给生产者和消费者解耦的。

基于阻塞队列的生产者消费者模型

多线程|基于阻塞队列和环形队列的生产者消费者模型架构_第1张图片

 代码地址

CPModel_BlockQueueicon-default.png?t=N3I4https://github.com/Yufccode/BitCode/tree/main/Linux/%E4%BB%A3%E7%A0%81/0114%E5%9F%BA%E4%BA%8E%E9%98%BB%E5%A1%9E%E9%98%9F%E5%88%97%E7%9A%84cp%E6%A8%A1%E5%9E%8B

基于环形队列的生产者消费者模型

多线程|基于阻塞队列和环形队列的生产者消费者模型架构_第2张图片

  代码地址

CPModel_RingQueueicon-default.png?t=N3I4https://github.com/Yufccode/BitCode/tree/main/Linux/%E4%BB%A3%E7%A0%81/0208%E5%9F%BA%E4%BA%8E%E7%8E%AF%E5%BD%A2%E9%98%9F%E5%88%97%E7%9A%84cp%E6%A8%A1%E5%9E%8B


你可能感兴趣的:(Linux,操作系统,手撕数据结构,架构,linux,c++,后端)